@jt-home/mfe-components 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -0
- package/dist/index.mjs +3029 -0
- package/dist/style.css +1 -0
- package/dist/types/components/JtButton/index.d.ts +1 -0
- package/dist/types/components/JtButton/index.vue.d.ts +21 -0
- package/dist/types/components/JtPageHeader/index.d.ts +2 -0
- package/dist/types/components/JtPageHeader/index.vue.d.ts +25 -0
- package/dist/types/components/JtPageHeader/types.d.ts +31 -0
- package/dist/types/components/JtPagination/index.d.ts +2 -0
- package/dist/types/components/JtPagination/index.vue.d.ts +22 -0
- package/dist/types/components/JtPagination/types.d.ts +16 -0
- package/dist/types/components/form/JtFormItems.vue.d.ts +16 -0
- package/dist/types/components/form/index.d.ts +4 -0
- package/dist/types/components/form/item/JtCascader/index.d.ts +1 -0
- package/dist/types/components/form/item/JtCascader/index.vue.d.ts +29 -0
- package/dist/types/components/form/item/JtDatePicker/index.d.ts +1 -0
- package/dist/types/components/form/item/JtDatePicker/index.vue.d.ts +9 -0
- package/dist/types/components/form/item/JtInput/index.d.ts +1 -0
- package/dist/types/components/form/item/JtInput/index.vue.d.ts +35 -0
- package/dist/types/components/form/item/JtSelect/index.d.ts +2 -0
- package/dist/types/components/form/item/JtSelect/index.vue.d.ts +34 -0
- package/dist/types/components/form/item/JtSelect/types.d.ts +6 -0
- package/dist/types/components/form/item/index.d.ts +5 -0
- package/dist/types/components/form/types.d.ts +71 -0
- package/dist/types/components/globalInfo/components/GlobalInfoGroup.vue.d.ts +105 -0
- package/dist/types/components/globalInfo/components/GlobalInfoProvider.vue.d.ts +22 -0
- package/dist/types/components/globalInfo/components/GlobalInfoSectionBlock.vue.d.ts +165 -0
- package/dist/types/components/globalInfo/components/GlobalInfoSectionOutlet.vue.d.ts +31 -0
- package/dist/types/components/globalInfo/components/GlobalInfoSections.vue.d.ts +59 -0
- package/dist/types/components/globalInfo/components/GlobalInfoSlotErrorBoundary.vue.d.ts +36 -0
- package/dist/types/components/globalInfo/controller/useGlobalInfoController.d.ts +19 -0
- package/dist/types/components/globalInfo/index.d.ts +14 -0
- package/dist/types/components/globalInfo/model/adapter.d.ts +9 -0
- package/dist/types/components/globalInfo/model/fieldUtils.d.ts +11 -0
- package/dist/types/components/globalInfo/model/types.d.ts +558 -0
- package/dist/types/components/globalInfo/renderers/GlobalInfoAutoRenderer.vue.d.ts +11 -0
- package/dist/types/components/globalInfo/renderers/GlobalInfoDeleteConfirm.vue.d.ts +28 -0
- package/dist/types/components/globalInfo/renderers/GlobalInfoFieldControl.vue.d.ts +19 -0
- package/dist/types/components/globalInfo/renderers/GlobalInfoFieldValue.vue.d.ts +11 -0
- package/dist/types/components/globalInfo/renderers/GlobalInfoFormRenderer.vue.d.ts +34 -0
- package/dist/types/components/globalInfo/renderers/GlobalInfoTableRenderer.vue.d.ts +39 -0
- package/dist/types/components/index.d.ts +11 -0
- package/dist/types/components/table/JtCrudTable.vue.d.ts +288 -0
- package/dist/types/components/table/JtFilterBar.vue.d.ts +65 -0
- package/dist/types/components/table/JtPagination.vue.d.ts +22 -0
- package/dist/types/components/table/JtTable.vue.d.ts +27 -0
- package/dist/types/components/table/index.d.ts +5 -0
- package/dist/types/components/table/types.d.ts +134 -0
- package/dist/types/components/table/useSearchDisabled.d.ts +12 -0
- package/dist/types/main.d.ts +3 -0
- package/dist/types/utils/componentAttrs.d.ts +14 -0
- package/package.json +77 -0
- package/readme.md +671 -0
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--color-primary: #e60000;--color-primary-light: #ff3a3a;--color-primary-hover: #e51e1b;--color-primary-bg-light: #ffe5e5;--color-primary-bg-lighter: #fdf7f7;--color-primary-bg-subtle: rgba(230, 0, 0, .05);--color-primary-bg-subtle-2: rgba(230, 0, 0, .1);--color-primary-tint-1: #ffecec;--color-primary-tint-2: #ffd1d1;--color-primary-tint-3: #f7b2b2;--color-bg-page: #f9f9f9;--color-bg-card: #ffffff;--color-bg-input: #f9fafb;--color-bg-table-header: #f6f3f3;--color-bg-elevated: #fbf9f9;--color-text-primary: #333333;--color-text-regular: rgba(0, 0, 0, .8);--color-text-secondary: rgba(0, 0, 0, .6);--color-text-tertiary: rgba(0, 0, 0, .4);--color-text-disabled: rgba(0, 0, 0, .2);--color-border-default: #e5e5e5;--color-border-light: #f5f5f5;--color-border-medium: #d9d9d9;--color-border-dark: #999999;--color-border-strong: #666666;--color-border-primary: #e60000;--color-link: #0066ff;--color-error: #e60000;--color-icon-gray: #a6a6a6;--gradient-primary-button: linear-gradient(90deg, #e60000 0%, #ff3a3a 100%);--gradient-secondary-button: linear-gradient(90deg, #ff3a3a 0%, #e60000 100%);--gradient-bg-soft: linear-gradient(90deg, #f9f9f9 0%, #ffecec 100%);--font-family-primary: "PingFang SC", -apple-system, BlinkMacSystemFont, sans-serif;--font-family-secondary: "Source Han Sans", "PingFang SC", sans-serif;--font-size-title-lg: 20px;--font-size-title: 16px;--font-size-body: 16px;--font-size-body-sm: 14px;--font-size-caption: 12px;--font-size-caption-sm: 10px;--font-size-ui: 13px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--spacing-1: 2px;--spacing-2: 4px;--spacing-3: 8px;--spacing-4: 10px;--spacing-5: 12px;--spacing-6: 16px;--spacing-8: 20px;--spacing-10: 32px;--spacing-12: 50px;--spacing-16: 80px;--spacing-20: 160px;--radius-none: 0;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-base: 12px;--radius-lg: 14px;--radius-xl: 16px;--radius-pill: 50px;--shadow-card: 0px 2px 8px 0px rgba(0, 0, 0, .05);--shadow-dropdown: 0px 4px 4px 0px rgba(0, 0, 0, .1);--el-color-primary: #e60000;--el-color-primary-light-3: #f04d4d;--el-color-primary-light-5: #f38080;--el-color-primary-light-7: #f8b3b3;--el-color-primary-light-8: #facccc;--el-color-primary-light-9: #fde6e6;--el-color-primary-dark-2: #b80000;--el-border-color: #e5e5e5;--el-border-color-light: #e5e5e5;--el-border-color-lighter: #e5e5e5;--el-border-color-extra-light: #e5e5e5;--el-border-color-dark: #e5e5e5;--el-border-color-darker: #e5e5e5}[class^=jt-],[class*=" jt-"],[class^=jt-] *,[class*=" jt-"] *{box-sizing:border-box}.jt-button.el-button[data-v-fbcdce34]{--jt-button-icon-size: 14px;--el-button-hover-text-color: #333333;--el-button-hover-border-color: #e5e5e5;--el-button-hover-bg-color: #ffffff;--el-button-active-text-color: #333333;--el-button-active-border-color: #e5e5e5;--el-button-active-bg-color: #ffffff;height:28px;border-radius:4px;border:1px solid #e5e5e5;background:#fff;padding-left:14px;padding-right:14px;font-size:12px;font-weight:400;color:#333}.jt-button.el-button+.jt-button.el-button[data-v-fbcdce34]{margin-left:10px}.jt-button.el-button[data-v-fbcdce34] .jt-button__icon{width:var(--jt-button-icon-size);height:var(--jt-button-icon-size);margin-right:4px;font-size:var(--jt-button-icon-size)}.jt-button.el-button[data-v-fbcdce34] .jt-button__icon svg,.jt-button.el-button[data-v-fbcdce34] .jt-button__icon img{width:var(--jt-button-icon-size);height:var(--jt-button-icon-size)}.jt-button.el-button[data-v-fbcdce34] .jt-button__icon img{display:block}.jt-button.el-button[data-v-fbcdce34] .jt-button__icon+span{margin-left:0}.jt-button.el-button[data-v-fbcdce34]:hover,.jt-button.el-button[data-v-fbcdce34]:focus,.jt-button.el-button[data-v-fbcdce34]:active{border-color:#e5e5e5;background:#fff;color:#333}.jt-button.el-button--primary[data-v-fbcdce34]{border:none;background:linear-gradient(90deg,#e60000,#ff3a3a);color:#fff}.jt-button.el-button--primary[data-v-fbcdce34]:hover,.jt-button.el-button--primary[data-v-fbcdce34]:focus{background:linear-gradient(90deg,#e60000,#ff3a3a);color:#fff}.jt-button.el-button--primary[data-v-fbcdce34] .el-icon{color:#fff}.jt-cascader[data-v-9164edeb]{width:100%;--jt-cascader-text-color: #333333;--jt-cascader-placeholder-color: #999999;--jt-cascader-border-color: #e5e5e5;--jt-cascader-hover-border-color: #cccccc;--jt-cascader-focus-border-color: #e60000;--el-input-text-color: var(--jt-cascader-text-color);--el-input-placeholder-color: var(--jt-cascader-placeholder-color);--el-input-border-color: var(--jt-cascader-border-color);--el-input-hover-border-color: var(--jt-cascader-hover-border-color);--el-color-primary: var(--jt-cascader-focus-border-color)}[data-v-2aaf2264] .jt-date-picker.el-date-editor{--el-date-editor-width: 100%;--jt-date-picker-text-color: #333333;--jt-date-picker-placeholder-color: #999999;--jt-date-picker-border-color: #e5e5e5;--jt-date-picker-hover-border-color: #cccccc;--jt-date-picker-focus-border-color: #e60000;--el-input-text-color: var(--jt-date-picker-text-color);--el-input-placeholder-color: var(--jt-date-picker-placeholder-color);--el-input-border-color: var(--jt-date-picker-border-color);--el-input-hover-border-color: var(--jt-date-picker-hover-border-color);--el-input-focus-border-color: var(--jt-date-picker-focus-border-color);--el-input-focus-border: var(--jt-date-picker-focus-border-color);--el-color-primary: var(--jt-date-picker-focus-border-color)}.jt-input[data-v-c4e9cb3f]{--jt-input-text-color: #333333;--jt-input-placeholder-color: #999999;--jt-input-border-color: #e5e5e5;--jt-input-hover-border-color: #cccccc;--jt-input-focus-border-color: #e60000;--el-input-text-color: var(--jt-input-text-color);--el-input-placeholder-color: var(--jt-input-placeholder-color);--el-input-border-color: var(--jt-input-border-color);--el-input-hover-border-color: var(--jt-input-hover-border-color);--el-input-focus-border-color: var(--jt-input-focus-border-color)}.jt-select[data-v-abce8e44]{--jt-select-text-color: #333333;--jt-select-placeholder-color: #999999;--jt-select-border-color: #e5e5e5;--jt-select-hover-border-color: #cccccc;--jt-select-focus-border-color: #e60000;--el-input-text-color: var(--jt-select-text-color);--el-input-placeholder-color: var(--jt-select-placeholder-color);--el-input-border-color: var(--jt-select-border-color);--el-input-hover-border-color: var(--jt-select-hover-border-color);--el-color-primary: var(--jt-select-focus-border-color)}.jt-form-items[data-v-20df934b]{width:100%;display:grid;grid-template-columns:repeat(var(--jt-form-columns, 4),minmax(0,1fr));column-gap:var(--jt-form-gap, 16px);row-gap:var(--jt-form-gap, 16px)}.jt-form-items__item[data-v-20df934b]{margin:0;width:100%}.jt-form-items__actions[data-v-20df934b]{margin:0;width:100%;align-self:end}.jt-form-items__item[data-v-20df934b] .el-form-item__content{width:100%;min-width:0}.jt-form-items__actions[data-v-20df934b] .el-form-item__content{display:flex;justify-content:flex-end;align-items:center;width:100%;min-width:0}.jt-form-items__item[data-v-20df934b] .el-date-editor.el-input,.jt-form-items__item[data-v-20df934b] .el-date-editor--daterange,.jt-form-items__item[data-v-20df934b] .el-date-editor .el-input__wrapper,.jt-form-items__item[data-v-20df934b] .el-cascader{width:100%;min-width:0}.jt-filter-bar[data-v-ea82d792]{padding-left:12px;padding-right:12px}.jt-filter-bar__form[data-v-ea82d792]{width:100%;display:contents}.jt-filter-bar__btns[data-v-ea82d792]{display:flex;justify-content:flex-end;align-items:center;width:100%;height:32px;min-width:0;text-align:right}.jt-filter-bar__icon-arrow[data-v-ea82d792]{transition:transform .2s ease}.jt-filter-bar__icon-arrow.is-collapsed[data-v-ea82d792]{transform:rotate(180deg)}.jt-table[data-v-4804a967]{flex:1;min-height:0;--el-table-border-color: transparent;--el-table-bg-color: #fff;--el-table-tr-bg-color: #fff;--el-table-header-bg-color: #f6f3f3;--el-table-header-text-color: #333333;--el-table-text-color: #333333;--el-table-row-hover-bg-color: transparent;--el-color-primary: #e60000;background:#fff}.jt-table[data-v-4804a967] .el-table__inner-wrapper:before{height:0}.jt-table[data-v-4804a967] .el-table__header-wrapper{border-radius:12px;overflow:hidden}.jt-table[data-v-4804a967] th.el-table__cell{background:#f6f3f3;font-size:14px;font-weight:400;color:#333;padding:12px 0;border:none}.jt-table[data-v-4804a967] th.el-table__cell:first-child{border-radius:12px 0 0 12px}.jt-table[data-v-4804a967] th.el-table__cell:last-child{border-radius:0 12px 12px 0}.jt-table[data-v-4804a967] th.el-table__cell .cell{padding:0 10px}.jt-table[data-v-4804a967] td.el-table__cell{font-size:14px;font-weight:500;color:#333;padding:12px 0;border:none}.jt-table[data-v-4804a967] td.el-table__cell .cell{padding:0 10px}.jt-table[data-v-4804a967] .el-table__row:nth-child(odd) td{background:#fff}.jt-table[data-v-4804a967] .el-table__row:nth-child(2n) td{background:#fbf9f9}.jt-table[data-v-4804a967] .el-table__row td:first-child{border-radius:12px 0 0 12px}.jt-table[data-v-4804a967] .el-table__row td:last-child{border-radius:0 12px 12px 0}.jt-table[data-v-4804a967] .el-table__empty-block{min-height:200px}.jt-pagination[data-v-19ef6db6]{display:flex;justify-content:center;align-items:center;gap:10px;background:#fff}.jt-pagination[data-v-19ef6db6] .el-pagination{--el-pagination-button-width: 24px;--el-pagination-button-height: 24px;--el-pagination-font-size: 12px;gap:4px}.jt-pagination[data-v-19ef6db6] .el-pager li{width:24px;height:24px;min-width:24px;border-radius:4px;border:1px solid #e1e4e7;font-size:12px;font-weight:400;color:#333;line-height:22px;padding:0;margin:0 2px;background:transparent}.jt-pagination[data-v-19ef6db6] .el-pager li.is-active{background:#e60000;border-color:#e60000;color:#fff}.jt-pagination[data-v-19ef6db6] .btn-prev,.jt-pagination[data-v-19ef6db6] .btn-next{width:24px;height:24px;min-width:24px;border-radius:4px;border:1px solid #e1e4e7;padding:0;margin:0 2px;background:transparent}.jt-pagination[data-v-19ef6db6] .el-pagination__jump{font-size:12px;color:#333;margin-left:4px}.jt-pagination[data-v-19ef6db6] .el-pagination__jump .el-input{width:56px}.jt-pagination[data-v-19ef6db6] .el-pagination__jump .el-input__wrapper{height:24px;border-radius:4px;border:1px solid #e1e4e7;box-shadow:none!important;padding:0 4px}.jt-pagination__count[data-v-19ef6db6]{font-size:14px;font-weight:400;color:#333}.jt-crud-table[data-v-6df082c6]{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;gap:16px;background:#fff}.jt-crud-table[data-v-6df082c6] .jt-pagination{margin-top:auto;flex-shrink:0}.jt-crud-table__toolbar[data-v-6df082c6]{display:flex;justify-content:flex-end;align-items:center;min-width:0}.jt-pagination[data-v-72da666d]{display:flex;justify-content:center;align-items:center;gap:10px;background:#fff}.jt-pagination[data-v-72da666d] .el-pagination{--el-pagination-button-width: 24px;--el-pagination-button-height: 24px;--el-pagination-font-size: 12px;gap:14px}.jt-pagination[data-v-72da666d] .el-pager li{width:24px;height:24px;line-height:24px;min-width:24px;border-radius:4px;border:1px solid #e1e4e7;font-size:12px;font-weight:400;color:#333;padding:0;background:transparent}.jt-pagination[data-v-72da666d] .el-pager li:not(:first-child){margin-left:14px}.jt-pagination[data-v-72da666d] .el-pager li.is-active{background:#fdebe8;border-color:#e60000;color:#e60000}.jt-pagination[data-v-72da666d] .btn-prev,.jt-pagination[data-v-72da666d] .btn-next{width:24px;height:24px;min-width:24px;border-radius:4px;border:1px solid #e1e4e7;padding:0;margin:0 2px;background:transparent}.jt-pagination[data-v-72da666d] .el-pagination__jump{font-size:12px;color:#333;margin-left:4px}.jt-pagination[data-v-72da666d] .el-pagination__jump .el-input{width:56px}.jt-pagination[data-v-72da666d] .el-pagination__jump .el-input__wrapper{height:24px;border-radius:4px;border:1px solid #e1e4e7;box-shadow:none!important;padding:0 4px}.jt-pagination__count[data-v-72da666d]{font-size:14px;font-weight:400;color:#333}.jt-page-header[data-v-2f59fb4a]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:var(--jt-page-header-height, 44px);padding-left:var(--jt-page-header-padding-x, 12px);padding-right:var(--jt-page-header-padding-x, 12px);background-color:var(--jt-page-header-bg-color, #f9f9f9);border-radius:var(--jt-page-header-border-radius, 6px)}.jt-page-header .jt-page-header__title[data-v-2f59fb4a]{display:flex;align-items:center;font-size:var(--jt-page-header-title-font-size, 16px);font-weight:500;color:#333}.jt-page-header .jt-page-header__title[data-v-2f59fb4a]:before{content:"";display:block;width:var(--jt-page-header-title-marker-width, 4px);height:var(--jt-page-header-title-marker-height, 12px);margin-right:6px;background-color:#e60000;border-radius:1px}.jt-page-header--subsection[data-v-2f59fb4a]{--jt-page-header-bg-color: #fff;--jt-page-header-height: 32px;--jt-page-header-padding-x: 0;--jt-page-header-title-font-size: 14px;--jt-page-header-title-marker-width: 3px;--jt-page-header-title-marker-height: 10px}.jt-page-header__title[data-v-2f59fb4a],.jt-page-header__operates[data-v-2f59fb4a]{min-width:0}.jt-page-header__operates[data-v-2f59fb4a]{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0}.global-info-field-control[data-v-ba86a0ae]{--global-info-control-height: 32px;--global-info-control-border: #d9d9d9;--global-info-control-disabled-bg: #f9fafb;--global-info-control-radius: 4px;width:100%;height:var(--global-info-control-height);min-width:0;font-size:13px;box-sizing:border-box}.global-info-field-control[data-v-ba86a0ae] *,.global-info-field-control[data-v-ba86a0ae] *:before,.global-info-field-control[data-v-ba86a0ae] *:after{box-sizing:border-box}.global-info-field-control.el-input[data-v-ba86a0ae],.global-info-field-control.el-input-number[data-v-ba86a0ae],.global-info-field-control.el-date-editor[data-v-ba86a0ae],.global-info-field-control.el-select[data-v-ba86a0ae]{width:100%;min-width:0;height:var(--global-info-control-height);line-height:var(--global-info-control-height)}.global-info-field-control.el-date-editor[data-v-ba86a0ae]{--el-date-editor-width: 100%}.global-info-field-control.el-date-editor.el-input[data-v-ba86a0ae],.global-info-field-control.el-date-editor.el-input__wrapper[data-v-ba86a0ae]{width:100%;min-width:0;height:var(--global-info-control-height)}.global-info-field-control[data-v-ba86a0ae] .el-input,.global-info-field-control[data-v-ba86a0ae] .el-input-number,.global-info-field-control[data-v-ba86a0ae] .el-date-editor,.global-info-field-control[data-v-ba86a0ae] .el-select{width:100%;min-width:0;height:var(--global-info-control-height);line-height:var(--global-info-control-height)}.global-info-field-control[data-v-ba86a0ae] .el-input__wrapper,.global-info-field-control[data-v-ba86a0ae] .el-select__wrapper,.global-info-field-control[data-v-ba86a0ae] .el-input-number__wrapper,.global-info-field-control[data-v-ba86a0ae] .el-date-editor.el-input__wrapper,.global-info-field-control.el-date-editor.el-input__wrapper[data-v-ba86a0ae]{width:100%;min-width:0;min-height:var(--global-info-control-height);height:var(--global-info-control-height);border-radius:var(--global-info-control-radius);background:#fff;box-shadow:0 0 0 1px var(--global-info-control-border) inset}.global-info-field-control[data-v-ba86a0ae] .el-input__inner,.global-info-field-control[data-v-ba86a0ae] .el-select__selection,.global-info-field-control[data-v-ba86a0ae] .el-input-number .el-input__inner,.global-info-field-control[data-v-ba86a0ae] .el-date-editor .el-input__inner,.global-info-field-control.el-date-editor[data-v-ba86a0ae] .el-input__inner{height:var(--global-info-control-height);line-height:var(--global-info-control-height)}.global-info-field-control[data-v-ba86a0ae] .el-input__prefix,.global-info-field-control[data-v-ba86a0ae] .el-input__suffix,.global-info-field-control[data-v-ba86a0ae] .el-select__prefix,.global-info-field-control[data-v-ba86a0ae] .el-select__suffix{height:var(--global-info-control-height)}.global-info-field-control[data-v-ba86a0ae] .el-select__wrapper{padding-top:0;padding-bottom:0}.global-info-field-control[data-v-ba86a0ae] .el-input__wrapper.is-disabled,.global-info-field-control[data-v-ba86a0ae] .el-select__wrapper.is-disabled,.global-info-field-control[data-v-ba86a0ae] .el-textarea__inner:disabled,.global-info-field-control[data-v-ba86a0ae] .el-input-number.is-disabled .el-input__wrapper,.global-info-field-control.el-date-editor.is-disabled.el-input__wrapper[data-v-ba86a0ae]{background-color:var(--global-info-control-disabled-bg);box-shadow:0 0 0 1px #e5e5e5 inset}.global-info-field-control[data-v-ba86a0ae] .el-input-number__decrease,.global-info-field-control[data-v-ba86a0ae] .el-input-number__increase{height:calc(var(--global-info-control-height) / 2);line-height:calc(var(--global-info-control-height) / 2)}.global-info-field-control[data-v-ba86a0ae] .el-textarea__inner{min-height:72px;border-color:#d9d9d9;border-radius:var(--global-info-control-radius);font-size:13px}.global-info-field-control--switch[data-v-ba86a0ae]{display:inline-flex;height:var(--global-info-control-height);align-items:center}.global-info-field-control--file[data-v-ba86a0ae]{--global-info-control-height: 36px;display:flex;height:var(--global-info-control-height);min-width:0;align-items:center;justify-content:center;border:1px solid #e60000;border-radius:var(--global-info-control-radius);background:#fdebeb;color:#e60000;cursor:pointer;line-height:var(--global-info-control-height)}.global-info-field-control--file.is-filled[data-v-ba86a0ae]{border-color:#e5e5e5;background:#fff}.global-info-field-control--file.is-disabled[data-v-ba86a0ae]{background:var(--global-info-control-disabled-bg);color:#0003;cursor:not-allowed}.global-info-field-control__file-input[data-v-ba86a0ae]{display:none}.global-info-field-control__file-text[data-v-ba86a0ae],.global-info-field-control__file-upload[data-v-ba86a0ae]{min-width:0;overflow:hidden;font-size:14px;line-height:24px;text-overflow:ellipsis;white-space:nowrap}.global-info-field-control--code[data-v-ba86a0ae] .el-textarea__inner{font-family:Consolas,Monaco,Courier New,monospace}.global-info-field-value[data-v-aa0d493d]{display:inline-block;min-height:32px;color:#333;line-height:32px;word-break:break-word}.global-info-field-value--html[data-v-aa0d493d],.global-info-field-value--multi-row[data-v-aa0d493d],.global-info-field-value--code[data-v-aa0d493d]{white-space:pre-wrap}.global-info-field-value--code[data-v-aa0d493d]{width:100%;margin:0;padding:8px 10px;border:1px solid #e5e5e5;border-radius:4px;background:#f9fafb;color:#333;font-family:Consolas,Monaco,Courier New,monospace;line-height:20px}.global-info-field-value--file[data-v-aa0d493d]{color:#e60000;text-decoration:underline;text-underline-offset:3px}.global-info-form-renderer[data-v-9dcd2ba9]{width:100%}.global-info-form-renderer__label[data-v-9dcd2ba9]{display:inline-flex;align-items:center;gap:2px}.global-info-form-renderer__required[data-v-9dcd2ba9]{color:#e60000}.global-info-form-renderer[data-v-9dcd2ba9] .el-form-item{margin-bottom:18px}.global-info-form-renderer[data-v-9dcd2ba9] .el-form-item__label{min-height:20px;margin-bottom:6px;color:#0009;font-size:13px;line-height:20px}.global-info-form-renderer[data-v-9dcd2ba9] .el-input-number,.global-info-form-renderer[data-v-9dcd2ba9] .el-date-editor,.global-info-form-renderer[data-v-9dcd2ba9] .el-select{width:100%}.global-info-delete-confirm{min-width:240px;padding:12px;border:1px solid #ebeef5;border-radius:6px;box-shadow:0 4px 12px #1f232924}.global-info-delete-confirm .el-popconfirm__main{color:#1f2329;font-size:13px;line-height:20px}.global-info-delete-confirm .el-popconfirm__action{margin-top:12px}.global-info-delete-confirm .el-button--primary{border-color:#e60000;background:#e60000}.global-info-table-renderer[data-v-2fa29438]{width:100%}.global-info-table-renderer__table-scroll[data-v-2fa29438]{width:100%;overflow-x:auto;border-radius:12px;background:#f9f9f9}.global-info-table-renderer__table[data-v-2fa29438]{min-width:100%;background:#f9f9f9;color:#222;font-family:PingFang SC,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:24px;--el-table-bg-color: #f9f9f9;--el-table-tr-bg-color: #f9f9f9;--el-table-header-bg-color: #f9f9f9;--el-table-row-hover-bg-color: #f9f9f9;--el-table-border-color: transparent;--el-table-text-color: #222222;--el-table-header-text-color: #333333}.global-info-table-renderer__header[data-v-2fa29438]{display:inline-flex;align-items:center;justify-content:center;gap:2px;color:#333;font-size:14px;font-weight:400;line-height:24px;white-space:nowrap}.global-info-table-renderer__required[data-v-2fa29438],.global-info-table-renderer__delete[data-v-2fa29438]{color:#e60000}.global-info-table-renderer__delete[data-v-2fa29438]{display:inline-flex;align-items:center;gap:4px;font-size:14px;line-height:24px}.global-info-table-renderer__delete-icon[data-v-2fa29438]{font-size:14px}.global-info-table-renderer[data-v-2fa29438] .el-table__inner-wrapper:before,.global-info-table-renderer[data-v-2fa29438] .el-table__border-left-patch,.global-info-table-renderer[data-v-2fa29438] .el-table__border-bottom-patch{display:none}.global-info-table-renderer[data-v-2fa29438] .el-table__header-wrapper th.el-table__cell,.global-info-table-renderer[data-v-2fa29438] .el-table__body-wrapper td.el-table__cell{padding:4px 0;border-bottom:0;background:#f9f9f9}.global-info-table-renderer[data-v-2fa29438] .el-table__header .cell,.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell{min-height:24px;padding:0 12px;color:#222;font-size:14px;font-weight:400;line-height:24px;text-align:center;white-space:nowrap}.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell>.global-info-field-control,.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell .global-info-field-control,.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell .el-input,.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell .el-input-number,.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell .el-select,.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell .el-date-editor{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell .el-input__wrapper,.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell .el-select__wrapper,.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell .el-input-number__wrapper,.global-info-table-renderer[data-v-2fa29438] .el-table__body .cell .el-date-editor.el-input__wrapper{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.global-info-table-renderer[data-v-2fa29438] .el-table__header .cell{color:#333}.global-info-table-renderer[data-v-2fa29438] .el-table__fixed-right{background:#f9f9f9}.global-info-section-block[data-v-0d8ae722]{width:100%;min-width:0;padding:0;background:transparent;border:0;border-radius:0}.global-info-section-block__header[data-v-0d8ae722],.global-info-section-block__title-wrap[data-v-0d8ae722],.global-info-section-block__actions[data-v-0d8ae722]{display:flex;align-items:center}.global-info-section-block__header[data-v-0d8ae722]{justify-content:space-between;gap:16px;margin-bottom:12px}.global-info-section-block__title-wrap[data-v-0d8ae722]{min-width:0;gap:8px}.global-info-section-block__marker[data-v-0d8ae722]{width:4px;height:4px;flex:0 0 auto;background:#e60000;border-radius:50%}.global-info-section-block__title[data-v-0d8ae722]{margin:0;overflow:hidden;color:#333;font-size:14px;font-weight:600;line-height:24px;text-overflow:ellipsis;white-space:nowrap}.global-info-section-block__actions[data-v-0d8ae722]{flex:0 0 auto;gap:8px}.global-info-section-block__edit[data-v-0d8ae722],.global-info-section-block__cancel[data-v-0d8ae722],.global-info-section-block__add[data-v-0d8ae722],.global-info-section-block__confirm[data-v-0d8ae722]{min-width:48px;height:24px;padding:0 12px;color:#e60000;background:#ffecec;border-radius:12px;font-size:12px;line-height:24px}.global-info-section-block__confirm[data-v-0d8ae722]{color:#fff;background:#e60000}.global-info-section-block__body[data-v-0d8ae722]{min-width:0}.global-info-section-block__status[data-v-0d8ae722]{min-height:80px;display:flex;align-items:center;justify-content:center;color:#0006;font-size:14px}.global-info-group[data-v-778e227f]{width:100%;min-width:0;padding:16px 20px 20px;background:#fff;border:1px solid #e5e5e5;border-radius:12px}.global-info-group__header[data-v-778e227f]{display:flex;min-width:0;align-items:center;gap:8px;margin-bottom:16px}.global-info-group__marker[data-v-778e227f]{width:3px;height:12px;flex:0 0 auto;background:#e60000;border-radius:2px}.global-info-group__title[data-v-778e227f]{min-width:0;margin:0;overflow:hidden;color:#333;font-size:16px;font-weight:600;line-height:24px;text-overflow:ellipsis;white-space:nowrap}.global-info-group__body[data-v-778e227f]{min-width:0}.global-info-group__section[data-v-778e227f]{min-width:0;padding-bottom:20px;border-bottom:1px solid #e5e5e5}.global-info-group__section+.global-info-group__section[data-v-778e227f]{margin-top:20px}.global-info-group__section[data-v-778e227f]:last-child{padding-bottom:0;border-bottom:0}.global-info-group__empty[data-v-778e227f]{min-height:80px;display:flex;align-items:center;justify-content:center;color:#0006;font-size:14px}.global-info-sections[data-v-f15cf0fb]{display:flex;min-width:0;flex-direction:column;gap:12px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as JtButton } from './index.vue';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Component } from 'vue';
|
|
2
|
+
import { ButtonProps } from 'element-plus';
|
|
3
|
+
type ElButtonProps = Partial<ButtonProps>;
|
|
4
|
+
type JtButtonProps = ElButtonProps & {
|
|
5
|
+
icon?: Component;
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_14: {}, __VLS_27: {};
|
|
8
|
+
type __VLS_Slots = {} & {
|
|
9
|
+
icon?: (props: typeof __VLS_14) => any;
|
|
10
|
+
} & {
|
|
11
|
+
default?: (props: typeof __VLS_27) => any;
|
|
12
|
+
};
|
|
13
|
+
declare const __VLS_base: import("vue").DefineComponent<JtButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<JtButtonProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
15
|
+
declare const _default: typeof __VLS_export;
|
|
16
|
+
export default _default;
|
|
17
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
18
|
+
new (): {
|
|
19
|
+
$slots: S;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { JtPageHeaderOperate, JtPageHeaderProps } from './types';
|
|
2
|
+
declare var __VLS_1: {}, __VLS_3: {
|
|
3
|
+
operates: JtPageHeaderOperate[];
|
|
4
|
+
};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
title?: (props: typeof __VLS_1) => any;
|
|
7
|
+
} & {
|
|
8
|
+
operates?: (props: typeof __VLS_3) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<JtPageHeaderProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
11
|
+
"operate-click": (operate: JtPageHeaderOperate, event: MouseEvent) => any;
|
|
12
|
+
}, string, import("vue").PublicProps, Readonly<JtPageHeaderProps> & Readonly<{
|
|
13
|
+
"onOperate-click"?: ((operate: JtPageHeaderOperate, event: MouseEvent) => any) | undefined;
|
|
14
|
+
}>, {
|
|
15
|
+
type: import("./types").JtPageHeaderType;
|
|
16
|
+
operates: JtPageHeaderOperate[];
|
|
17
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
20
|
+
export default _default;
|
|
21
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
22
|
+
new (): {
|
|
23
|
+
$slots: S;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Component } from 'vue';
|
|
2
|
+
export type JtPageHeaderType = 'section' | 'subsection';
|
|
3
|
+
/** 页面头部右侧操作按钮配置 */
|
|
4
|
+
export interface JtPageHeaderOperate {
|
|
5
|
+
/** 唯一标识,未传时使用 label 作为 key */
|
|
6
|
+
key?: string | number;
|
|
7
|
+
/** 按钮文案 */
|
|
8
|
+
label: string;
|
|
9
|
+
/** Element Plus 按钮类型 */
|
|
10
|
+
type?: 'primary' | 'success' | 'warning' | 'danger' | 'info';
|
|
11
|
+
/** 按钮图标组件 */
|
|
12
|
+
icon?: Component;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
plain?: boolean;
|
|
16
|
+
text?: boolean;
|
|
17
|
+
link?: boolean;
|
|
18
|
+
/** 透传给 ElButton 的额外属性 */
|
|
19
|
+
buttonProps?: Record<string, any>;
|
|
20
|
+
/** 点击按钮时触发 */
|
|
21
|
+
onClick?: (operate: JtPageHeaderOperate, event: MouseEvent) => void;
|
|
22
|
+
}
|
|
23
|
+
/** JtPageHeader 组件 Props */
|
|
24
|
+
export interface JtPageHeaderProps {
|
|
25
|
+
/** 标题层级,section 为当前默认区块标题,subsection 为小区块标题 */
|
|
26
|
+
type?: JtPageHeaderType;
|
|
27
|
+
/** 左侧标题文案,也可使用 title 插槽自定义 */
|
|
28
|
+
title?: string;
|
|
29
|
+
/** 右侧操作按钮配置,也可使用 operates 插槽自定义 */
|
|
30
|
+
operates?: JtPageHeaderOperate[];
|
|
31
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PaginationProps } from 'element-plus';
|
|
2
|
+
type ElPaginationProps = Partial<Omit<PaginationProps, 'currentPage' | 'pageSize'>>;
|
|
3
|
+
type __VLS_Props = ElPaginationProps;
|
|
4
|
+
type __VLS_ModelProps = {
|
|
5
|
+
'currentPage'?: number;
|
|
6
|
+
'pageSize'?: number;
|
|
7
|
+
};
|
|
8
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
9
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
"update:currentPage": (value: number) => any;
|
|
11
|
+
"update:pageSize": (value: number) => any;
|
|
12
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
13
|
+
"onUpdate:currentPage"?: ((value: number) => any) | undefined;
|
|
14
|
+
"onUpdate:pageSize"?: ((value: number) => any) | undefined;
|
|
15
|
+
}>, {
|
|
16
|
+
readonly layout: string;
|
|
17
|
+
readonly total: number;
|
|
18
|
+
readonly pageSizes: number[];
|
|
19
|
+
readonly hideOnSinglePage: boolean;
|
|
20
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
21
|
+
declare const _default: typeof __VLS_export;
|
|
22
|
+
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** 分页数据。 */
|
|
2
|
+
export interface JtPaginationData {
|
|
3
|
+
/** 当前页码。 */
|
|
4
|
+
currentPage: number;
|
|
5
|
+
/** 每页条数。 */
|
|
6
|
+
pageSize: number;
|
|
7
|
+
/** 总条数。 */
|
|
8
|
+
total: number;
|
|
9
|
+
}
|
|
10
|
+
/** JtPagination 组件配置。 */
|
|
11
|
+
export interface JtPaginationOption {
|
|
12
|
+
/** el-pagination 的 layout。 */
|
|
13
|
+
paginationLayout?: string;
|
|
14
|
+
/** 每页条数选项。 */
|
|
15
|
+
pageSizes?: number[];
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { JTFormItemsProps } from './types';
|
|
2
|
+
declare var __VLS_8: string, __VLS_9: {}, __VLS_24: {};
|
|
3
|
+
type __VLS_Slots = {} & {
|
|
4
|
+
[K in NonNullable<typeof __VLS_8>]?: (props: typeof __VLS_9) => any;
|
|
5
|
+
} & {
|
|
6
|
+
actions?: (props: typeof __VLS_24) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<JTFormItemsProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<JTFormItemsProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default as JtFormItems } from './JtFormItems.vue';
|
|
2
|
+
export { JtCascader, JtDatePicker, JtInput, JtSelect } from './item/index';
|
|
3
|
+
export type { JTCascaderFormItemConfig, JTCompatibleFormItemType, JTElementFormItemType, JTFormItemCascaderOption, JTFormItemConfig, JTFormItemEventHandler, JTFormItemType, JTFormItemsForm, JTFormItemsProps, } from './types';
|
|
4
|
+
export type { JtOptionItem } from './item/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as JtCascader } from './index.vue';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { CascaderComponentProps } from 'element-plus';
|
|
2
|
+
type ElCascaderProps = Omit<Partial<CascaderComponentProps>, 'options'> & {
|
|
3
|
+
options?: any[];
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<ElCascaderProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
clear: () => void;
|
|
7
|
+
"update:modelValue": (value: import("element-plus").CascaderValue | null | undefined) => void;
|
|
8
|
+
change: (value: import("element-plus").CascaderValue | null | undefined) => void;
|
|
9
|
+
focus: (evt: FocusEvent) => void;
|
|
10
|
+
blur: (evt: FocusEvent) => void;
|
|
11
|
+
visibleChange: (val: boolean) => void;
|
|
12
|
+
expandChange: (val: import("element-plus").CascaderValue) => void;
|
|
13
|
+
removeTag: (val: import("element-plus").CascaderNodeValue | import("element-plus").CascaderNodePathValue) => void;
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<ElCascaderProps> & Readonly<{
|
|
15
|
+
onClear?: (() => any) | undefined;
|
|
16
|
+
"onUpdate:modelValue"?: ((value: import("element-plus").CascaderValue | null | undefined) => any) | undefined;
|
|
17
|
+
onChange?: ((value: import("element-plus").CascaderValue | null | undefined) => any) | undefined;
|
|
18
|
+
onFocus?: ((evt: FocusEvent) => any) | undefined;
|
|
19
|
+
onBlur?: ((evt: FocusEvent) => any) | undefined;
|
|
20
|
+
onVisibleChange?: ((val: boolean) => any) | undefined;
|
|
21
|
+
onExpandChange?: ((val: import("element-plus").CascaderValue) => any) | undefined;
|
|
22
|
+
onRemoveTag?: ((val: import("element-plus").CascaderNodeValue | import("element-plus").CascaderNodePathValue) => any) | undefined;
|
|
23
|
+
}>, {
|
|
24
|
+
options: any[];
|
|
25
|
+
placeholder: string;
|
|
26
|
+
clearable: boolean;
|
|
27
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
28
|
+
declare const _default: typeof __VLS_export;
|
|
29
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as JtDatePicker } from './index.vue';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DatePickerProps } from 'element-plus';
|
|
2
|
+
declare const __VLS_export: import("vue").DefineComponent<Partial<DatePickerProps>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Partial<DatePickerProps>> & Readonly<{}>, {
|
|
3
|
+
readonly type: import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<(new (...args: any[]) => "year" | "months" | "years" | "month" | "date" | "dates" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange") | (() => import("element-plus").DatePickerType) | ((new (...args: any[]) => "year" | "months" | "years" | "month" | "date" | "dates" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange") | (() => import("element-plus").DatePickerType) | null)[], unknown, unknown>;
|
|
4
|
+
readonly placeholder: string;
|
|
5
|
+
readonly clearable: import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
6
|
+
readonly valueFormat: string;
|
|
7
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as JtInput } from './index.vue';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { InputProps } from 'element-plus';
|
|
2
|
+
declare const __VLS_export: import("vue").DefineComponent<Partial<InputProps>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
3
|
+
input: (value: string) => void;
|
|
4
|
+
clear: (evt: MouseEvent | undefined) => void;
|
|
5
|
+
"update:modelValue": (value: string) => void;
|
|
6
|
+
change: (value: string, evt?: Event | undefined) => void;
|
|
7
|
+
focus: (evt: FocusEvent) => void;
|
|
8
|
+
blur: (evt: FocusEvent) => void;
|
|
9
|
+
mouseleave: (evt: MouseEvent) => void;
|
|
10
|
+
mouseenter: (evt: MouseEvent) => void;
|
|
11
|
+
keydown: (evt: Event | KeyboardEvent) => void;
|
|
12
|
+
compositionstart: (evt: CompositionEvent) => void;
|
|
13
|
+
compositionupdate: (evt: CompositionEvent) => void;
|
|
14
|
+
compositionend: (evt: CompositionEvent) => void;
|
|
15
|
+
enter: () => void;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<Partial<InputProps>> & Readonly<{
|
|
17
|
+
onInput?: ((value: string) => any) | undefined;
|
|
18
|
+
onClear?: ((evt: MouseEvent | undefined) => any) | undefined;
|
|
19
|
+
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
20
|
+
onChange?: ((value: string, evt?: Event | undefined) => any) | undefined;
|
|
21
|
+
onFocus?: ((evt: FocusEvent) => any) | undefined;
|
|
22
|
+
onBlur?: ((evt: FocusEvent) => any) | undefined;
|
|
23
|
+
onMouseleave?: ((evt: MouseEvent) => any) | undefined;
|
|
24
|
+
onMouseenter?: ((evt: MouseEvent) => any) | undefined;
|
|
25
|
+
onKeydown?: ((evt: Event | KeyboardEvent) => any) | undefined;
|
|
26
|
+
onCompositionstart?: ((evt: CompositionEvent) => any) | undefined;
|
|
27
|
+
onCompositionupdate?: ((evt: CompositionEvent) => any) | undefined;
|
|
28
|
+
onCompositionend?: ((evt: CompositionEvent) => any) | undefined;
|
|
29
|
+
onEnter?: (() => any) | undefined;
|
|
30
|
+
}>, {
|
|
31
|
+
placeholder: string;
|
|
32
|
+
clearable: boolean;
|
|
33
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
34
|
+
declare const _default: typeof __VLS_export;
|
|
35
|
+
export default _default;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { JtSelectProps } from './types';
|
|
2
|
+
declare const __VLS_export: import("vue").DefineComponent<JtSelectProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
3
|
+
clear: () => void;
|
|
4
|
+
"update:modelValue": (val: any) => void;
|
|
5
|
+
change: (val: any) => void;
|
|
6
|
+
focus: (evt: FocusEvent) => void;
|
|
7
|
+
blur: (evt: FocusEvent) => void;
|
|
8
|
+
"popup-scroll": (args_0: {
|
|
9
|
+
scrollTop: number;
|
|
10
|
+
scrollLeft: number;
|
|
11
|
+
}) => void;
|
|
12
|
+
"end-reached": (direction: import("element-plus").ScrollbarDirection) => void;
|
|
13
|
+
"remove-tag": (val: unknown) => void;
|
|
14
|
+
"visible-change": (visible: boolean) => void;
|
|
15
|
+
}, string, import("vue").PublicProps, Readonly<JtSelectProps> & Readonly<{
|
|
16
|
+
onClear?: (() => any) | undefined;
|
|
17
|
+
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
18
|
+
onChange?: ((val: any) => any) | undefined;
|
|
19
|
+
onFocus?: ((evt: FocusEvent) => any) | undefined;
|
|
20
|
+
onBlur?: ((evt: FocusEvent) => any) | undefined;
|
|
21
|
+
"onPopup-scroll"?: ((args_0: {
|
|
22
|
+
scrollTop: number;
|
|
23
|
+
scrollLeft: number;
|
|
24
|
+
}) => any) | undefined;
|
|
25
|
+
"onEnd-reached"?: ((direction: import("element-plus").ScrollbarDirection) => any) | undefined;
|
|
26
|
+
"onRemove-tag"?: ((val: unknown) => any) | undefined;
|
|
27
|
+
"onVisible-change"?: ((visible: boolean) => any) | undefined;
|
|
28
|
+
}>, {
|
|
29
|
+
placeholder: string;
|
|
30
|
+
clearable: boolean;
|
|
31
|
+
filterable: boolean;
|
|
32
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
33
|
+
declare const _default: typeof __VLS_export;
|
|
34
|
+
export default _default;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { Component } from 'vue';
|
|
2
|
+
import type { DatePickerProps, CascaderComponentProps, CascaderOption, FormItemProps, InputProps, SelectOptionProps, SelectProps } from 'element-plus';
|
|
3
|
+
/** 对应 Element Plus 控件能力的标准表单项类型 */
|
|
4
|
+
export type JTElementFormItemType = 'input' | 'select' | 'cascader' | 'date-picker';
|
|
5
|
+
/** 业务历史兼容类型,不直接对应 Element Plus 组件名 */
|
|
6
|
+
export type JTCompatibleFormItemType = 'remote-select' | 'date' | 'daterange' | 'date-range' | 'dateRange';
|
|
7
|
+
/** 表单项类型,支持预置字符串、兼容别名或自定义组件 */
|
|
8
|
+
export type JTFormItemType = JTElementFormItemType | JTCompatibleFormItemType | Component;
|
|
9
|
+
/** 下拉选项 */
|
|
10
|
+
export type JTFormItemOption = Partial<SelectOptionProps>;
|
|
11
|
+
export type JTFormItemCascaderOption = CascaderOption;
|
|
12
|
+
/** 事件处理函数 */
|
|
13
|
+
export type JTFormItemEventHandler = (...args: any[]) => void;
|
|
14
|
+
/** 表单数据 */
|
|
15
|
+
export interface JTFormItemsForm {
|
|
16
|
+
[prop: string]: any;
|
|
17
|
+
}
|
|
18
|
+
/** 表单项基础配置 */
|
|
19
|
+
interface JTFormItemBaseConfig {
|
|
20
|
+
/** 字段名 */
|
|
21
|
+
prop: string;
|
|
22
|
+
/** 标签文本 */
|
|
23
|
+
label: string;
|
|
24
|
+
/** 占几列,1-4 */
|
|
25
|
+
span?: number;
|
|
26
|
+
/** 是否显示当前表单项,false 时不渲染 */
|
|
27
|
+
show?: boolean;
|
|
28
|
+
/** 下拉选项(select 类型使用) */
|
|
29
|
+
options?: JTFormItemOption[] | JTFormItemCascaderOption[];
|
|
30
|
+
/** 表单项校验规则,快捷传递给 ElFormItem */
|
|
31
|
+
rules?: FormItemProps['rules'];
|
|
32
|
+
/** 传递给 ElFormItem 的额外属性 */
|
|
33
|
+
formItemProps?: Record<string, any>;
|
|
34
|
+
/** 是否使用插槽渲染,插槽名为 prop 值 */
|
|
35
|
+
showSlot?: boolean;
|
|
36
|
+
/** 其他属性会透传给子组件 */
|
|
37
|
+
[key: string]: unknown;
|
|
38
|
+
}
|
|
39
|
+
/** input 表单项配置,透传 Element Plus ElInput props */
|
|
40
|
+
export type JTInputFormItemConfig = JTFormItemBaseConfig & Partial<InputProps> & {
|
|
41
|
+
itemType?: 'input';
|
|
42
|
+
};
|
|
43
|
+
/** select 表单项配置,透传 Element Plus ElSelect props */
|
|
44
|
+
export type JTSelectFormItemConfig = JTFormItemBaseConfig & Partial<SelectProps> & {
|
|
45
|
+
itemType: 'select' | 'remote-select';
|
|
46
|
+
options?: JTFormItemOption[];
|
|
47
|
+
};
|
|
48
|
+
/** cascader 表单项配置,透传 Element Plus ElCascader props */
|
|
49
|
+
export type JTCascaderFormItemConfig = JTFormItemBaseConfig & Partial<CascaderComponentProps> & {
|
|
50
|
+
itemType: 'cascader';
|
|
51
|
+
options?: JTFormItemCascaderOption[];
|
|
52
|
+
};
|
|
53
|
+
/** date-picker 表单项配置,透传 Element Plus ElDatePicker props */
|
|
54
|
+
export type JTDatePickerFormItemConfig = JTFormItemBaseConfig & Partial<DatePickerProps> & {
|
|
55
|
+
itemType: 'date' | 'date-picker' | 'daterange' | 'date-range' | 'dateRange';
|
|
56
|
+
};
|
|
57
|
+
/** 自定义组件表单项配置 */
|
|
58
|
+
export type JTCustomFormItemConfig = JTFormItemBaseConfig & {
|
|
59
|
+
itemType: Component;
|
|
60
|
+
};
|
|
61
|
+
/** 表单项配置 */
|
|
62
|
+
export type JTFormItemConfig = JTInputFormItemConfig | JTSelectFormItemConfig | JTCascaderFormItemConfig | JTDatePickerFormItemConfig | JTCustomFormItemConfig;
|
|
63
|
+
/** JtFormItems 组件 Props */
|
|
64
|
+
export interface JTFormItemsProps {
|
|
65
|
+
/** 表单项配置列表 */
|
|
66
|
+
configs: JTFormItemConfig[];
|
|
67
|
+
/** 表单数据对象 */
|
|
68
|
+
formData: JTFormItemsForm;
|
|
69
|
+
span?: number;
|
|
70
|
+
}
|
|
71
|
+
export {};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { GlobalInfoActions, GlobalInfoNode, GlobalInfoState } from '../model/types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
group: GlobalInfoNode;
|
|
4
|
+
children: GlobalInfoNode[];
|
|
5
|
+
state: GlobalInfoState;
|
|
6
|
+
actions: GlobalInfoActions;
|
|
7
|
+
index?: number;
|
|
8
|
+
};
|
|
9
|
+
declare var __VLS_1: {
|
|
10
|
+
group: GlobalInfoNode;
|
|
11
|
+
children: GlobalInfoNode[];
|
|
12
|
+
state: GlobalInfoState;
|
|
13
|
+
actions: GlobalInfoActions;
|
|
14
|
+
title: string;
|
|
15
|
+
index: number | undefined;
|
|
16
|
+
isEmpty: boolean;
|
|
17
|
+
}, __VLS_3: {
|
|
18
|
+
group: GlobalInfoNode;
|
|
19
|
+
children: GlobalInfoNode[];
|
|
20
|
+
state: GlobalInfoState;
|
|
21
|
+
actions: GlobalInfoActions;
|
|
22
|
+
index: number | undefined;
|
|
23
|
+
isEmpty: boolean;
|
|
24
|
+
}, __VLS_6: string, __VLS_7: {
|
|
25
|
+
node: GlobalInfoNode;
|
|
26
|
+
group: GlobalInfoNode;
|
|
27
|
+
sectionNode: GlobalInfoNode;
|
|
28
|
+
section: import("../index.ts").GlobalInfoSection | null;
|
|
29
|
+
sectionView: import("../index.ts").GlobalInfoSection | null;
|
|
30
|
+
state: GlobalInfoState;
|
|
31
|
+
actions: GlobalInfoActions;
|
|
32
|
+
index: number;
|
|
33
|
+
editing: boolean;
|
|
34
|
+
sectionStatus: import("../index.ts").GlobalInfoSectionStatus;
|
|
35
|
+
isSelfSection: boolean;
|
|
36
|
+
handleEdit: () => void;
|
|
37
|
+
handleCancel: () => void;
|
|
38
|
+
handleSave: () => Promise<unknown>;
|
|
39
|
+
}, __VLS_9: {
|
|
40
|
+
node: GlobalInfoNode;
|
|
41
|
+
group: GlobalInfoNode;
|
|
42
|
+
sectionNode: GlobalInfoNode;
|
|
43
|
+
section: import("../index.ts").GlobalInfoSection | null;
|
|
44
|
+
sectionView: import("../index.ts").GlobalInfoSection | null;
|
|
45
|
+
state: GlobalInfoState;
|
|
46
|
+
actions: GlobalInfoActions;
|
|
47
|
+
index: number;
|
|
48
|
+
editing: boolean;
|
|
49
|
+
sectionStatus: import("../index.ts").GlobalInfoSectionStatus;
|
|
50
|
+
isSelfSection: boolean;
|
|
51
|
+
handleEdit: () => void;
|
|
52
|
+
handleCancel: () => void;
|
|
53
|
+
handleSave: () => Promise<unknown>;
|
|
54
|
+
}, __VLS_19: string, __VLS_20: {
|
|
55
|
+
section: import("../index.ts").GlobalInfoSection;
|
|
56
|
+
sectionView: import("../index.ts").GlobalInfoSection;
|
|
57
|
+
node: GlobalInfoNode | null | undefined;
|
|
58
|
+
editing: boolean;
|
|
59
|
+
isEmpty: boolean;
|
|
60
|
+
empty: boolean;
|
|
61
|
+
fields: import("../index.ts").GlobalInfoField[];
|
|
62
|
+
state: GlobalInfoState;
|
|
63
|
+
actions: GlobalInfoActions;
|
|
64
|
+
viewModel?: import("../index.ts").GlobalInfoViewModel;
|
|
65
|
+
title?: string;
|
|
66
|
+
isSelfSection?: boolean;
|
|
67
|
+
loading?: boolean;
|
|
68
|
+
error?: unknown;
|
|
69
|
+
errorMessage?: string;
|
|
70
|
+
sectionStatus?: import("../index.ts").GlobalInfoSectionStatus;
|
|
71
|
+
reload?: () => Promise<void>;
|
|
72
|
+
handleEdit?: () => Promise<void>;
|
|
73
|
+
handleCancel?: () => Promise<void>;
|
|
74
|
+
handleAddTableRow?: () => void;
|
|
75
|
+
handleSave?: () => Promise<void>;
|
|
76
|
+
}, __VLS_22: {
|
|
77
|
+
node: null;
|
|
78
|
+
group: GlobalInfoNode;
|
|
79
|
+
sectionNode: null;
|
|
80
|
+
state: GlobalInfoState;
|
|
81
|
+
actions: GlobalInfoActions;
|
|
82
|
+
index: number;
|
|
83
|
+
};
|
|
84
|
+
type __VLS_Slots = {} & {
|
|
85
|
+
[K in NonNullable<typeof __VLS_6>]?: (props: typeof __VLS_7) => any;
|
|
86
|
+
} & {
|
|
87
|
+
[K in NonNullable<typeof __VLS_19>]?: (props: typeof __VLS_20) => any;
|
|
88
|
+
} & {
|
|
89
|
+
header?: (props: typeof __VLS_1) => any;
|
|
90
|
+
} & {
|
|
91
|
+
default?: (props: typeof __VLS_3) => any;
|
|
92
|
+
} & {
|
|
93
|
+
section?: (props: typeof __VLS_9) => any;
|
|
94
|
+
} & {
|
|
95
|
+
empty?: (props: typeof __VLS_22) => any;
|
|
96
|
+
};
|
|
97
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
98
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
99
|
+
declare const _default: typeof __VLS_export;
|
|
100
|
+
export default _default;
|
|
101
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
102
|
+
new (): {
|
|
103
|
+
$slots: S;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { GlobalInfoProviderSlotProps, GlobalInfoService } from '../model/types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
service: GlobalInfoService;
|
|
4
|
+
adaptScene?: string;
|
|
5
|
+
emplid?: string | number;
|
|
6
|
+
autoLoad?: boolean;
|
|
7
|
+
initialActiveNodeKey?: string;
|
|
8
|
+
};
|
|
9
|
+
type __VLS_Slots = {
|
|
10
|
+
default?: (props: GlobalInfoProviderSlotProps) => unknown;
|
|
11
|
+
};
|
|
12
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
13
|
+
autoLoad: boolean;
|
|
14
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
16
|
+
declare const _default: typeof __VLS_export;
|
|
17
|
+
export default _default;
|
|
18
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
19
|
+
new (): {
|
|
20
|
+
$slots: S;
|
|
21
|
+
};
|
|
22
|
+
};
|