From 7b73a23568bc734f67791bfa896dd0fb831c6697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Mon, 4 Aug 2025 15:11:18 +0800 Subject: [PATCH 01/34] =?UTF-8?q?fix:=20loading=E7=BB=84=E4=BB=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=A4=9A=E8=AF=AD=EF=BC=9Blookup=E7=BB=84=E4=BB=B6ID?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E4=B8=8D=E5=9B=BA=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom-class-editor.component.tsx | 5 +++-- .../composition/use-external-component.ts | 4 ++-- .../button-edit/src/components/text-edit.component.tsx | 1 + .../components/combo-list/src/combo-list.component.tsx | 7 ++++++- .../input-group/src/components/text-edit.component.tsx | 1 + .../src/components/language-contents.component.tsx | 4 +++- .../language-textbox/src/language-textbox.component.tsx | 2 +- .../ui-vue/components/loading/src/loading.component.tsx | 4 ---- .../ui-vue/components/loading/src/loading.service.tsx | 9 ++++++++- .../lookup/src/components/modal-container.component.tsx | 4 ++-- .../lookup/src/components/modal-container.props.ts | 1 + .../src/components/search-bar/search-bar.component.tsx | 5 +++-- .../lookup/src/components/search-bar/search-bar.props.ts | 1 + .../components/lookup/src/composition/use-search-bar.tsx | 1 + .../ui-vue/components/lookup/src/lookup.component.tsx | 6 +++--- .../components/lookup/src/schema/lookup.schema.json | 1 + .../src/composition/entity/base-property.ts | 2 +- 17 files changed, 38 insertions(+), 20 deletions(-) diff --git a/packages/designer/src/components/components/form-designer/components/custom-class-editor/custom-class-editor.component.tsx b/packages/designer/src/components/components/form-designer/components/custom-class-editor/custom-class-editor.component.tsx index 6e22859b43f..36616ae9c1c 100644 --- a/packages/designer/src/components/components/form-designer/components/custom-class-editor/custom-class-editor.component.tsx +++ b/packages/designer/src/components/components/form-designer/components/custom-class-editor/custom-class-editor.component.tsx @@ -27,9 +27,10 @@ export default defineComponent({ const cssEditorRef = ref(); /** 自定义样式Dom */ - formSchema.module.customClass ??= {}; + // formSchema.module.customClass ??= {}; // 在旧版本浏览器中不支持此语法 + formSchema.module.customClass = formSchema.module?.customClass || {}; - const cssFilePath = ref(formSchema.module.customStyleFile || ''); + // const cssFilePath = ref(formSchema.module.customStyleFile || ''); const { customClass } = formSchema.module; /** 当前编辑器内的样式代码 */ diff --git a/packages/designer/src/components/components/form-designer/components/external-component-panel/composition/use-external-component.ts b/packages/designer/src/components/components/form-designer/components/external-component-panel/composition/use-external-component.ts index fed8f4e9bea..0bd409bda4c 100644 --- a/packages/designer/src/components/components/form-designer/components/external-component-panel/composition/use-external-component.ts +++ b/packages/designer/src/components/components/form-designer/components/external-component-panel/composition/use-external-component.ts @@ -14,7 +14,7 @@ export default function (): UseExternalComponent { const metadataService = new MetadataService(); const module = formSchemaUtils.getModule(); - module.externalComponents ??= []; + module.externalComponents = module.externalComponents || []; const externalComponents: Ref = ref(module.externalComponents); function getComponents(): Ref { @@ -67,7 +67,7 @@ export default function (): UseExternalComponent { metadataContent }; lookupDataSourceConverter.convertTo(propertyValue, 'dataSource', [metadata]); - helpPropertyValue.dialog ??= {}; + helpPropertyValue.dialog = helpPropertyValue.dialog || {}; helpPropertyValue.dialog.title = metadataContent.name; const { newId, newName } = getNewIdAndName(metadataContent.code, metadataContent.name); propertyValue.editor.id = newId; diff --git a/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx b/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx index 325d1eac799..cce87a19775 100644 --- a/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx +++ b/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx @@ -41,6 +41,7 @@ export default function ( return () => { return ') { + dropdownIcon.value = ''; + } + const isMultiSelect = computed(() => props.multiSelect); const comboEditorWidth = computed(() => { @@ -159,7 +164,7 @@ export default defineComponent({ readonly={readonly.value} forcePlaceholder={props.forcePlaceholder} editable={editable.value} - buttonContent={props.dropDownIcon} + buttonContent={dropdownIcon.value} placeholder={props.placeholder === '请选择' ? getLocaleValue('comboList.placeholder') : props.placeholder} enableClear={enableClear.value} maxLength={props.maxLength} diff --git a/packages/ui-vue/components/input-group/src/components/text-edit.component.tsx b/packages/ui-vue/components/input-group/src/components/text-edit.component.tsx index e5731f7bafb..df6c1540f1d 100644 --- a/packages/ui-vue/components/input-group/src/components/text-edit.component.tsx +++ b/packages/ui-vue/components/input-group/src/components/text-edit.component.tsx @@ -48,6 +48,7 @@ export default function ( return () => ( , default: [] }, - modelValue: { type: Object, default: null } + modelValue: { type: Object, default: null }, + id: { type: String, default: '' } }, emits: ['update:modelValue'], setup(props, context) { @@ -25,6 +26,7 @@ export default defineComponent({
{ data.value[item.code] = value; diff --git a/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx b/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx index 89eeeb6a39f..e0dd9419a7e 100644 --- a/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx +++ b/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx @@ -88,7 +88,7 @@ export default defineComponent({ onChange={onDisplayTextChange} placement={'auto'} popupMinWidth={365}> - {showPopover.value && } + {showPopover.value && } ; } } diff --git a/packages/ui-vue/components/loading/src/loading.component.tsx b/packages/ui-vue/components/loading/src/loading.component.tsx index f265142ec59..0577508a869 100644 --- a/packages/ui-vue/components/loading/src/loading.component.tsx +++ b/packages/ui-vue/components/loading/src/loading.component.tsx @@ -26,7 +26,6 @@ export default defineComponent({ props: loadingProps, emits: ['closed', 'hidden'] as (string[] & ThisType) | undefined, setup(props: LoadingProps, context: SetupContext) { - const { t } = useI18n(); /** 加载样式 */ const loadingStyleDom = LOADING_STYLES; /** 是否展示加载信息 */ @@ -52,9 +51,6 @@ export default defineComponent({ // watch(()=>props.type,(newType)=>{ // type.value = newType; // }); - if (message.value === '正在加载,请稍候...') { - message.value = t('loading.message'); - } let loadingId = ""; diff --git a/packages/ui-vue/components/loading/src/loading.service.tsx b/packages/ui-vue/components/loading/src/loading.service.tsx index 6040829abee..4f5f6044670 100644 --- a/packages/ui-vue/components/loading/src/loading.service.tsx +++ b/packages/ui-vue/components/loading/src/loading.service.tsx @@ -1,8 +1,9 @@ /* eslint-disable no-use-before-define */ -import { Ref, createApp, onMounted, onUnmounted, ref } from 'vue'; +import { App, Ref, createApp, onMounted, onUnmounted, ref } from 'vue'; import FLoading from './loading.component'; import { LoadingProps } from './loading.props'; import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; let currentLoadingInstanceID = -1; const loadingInstances: { [key: number]: Ref } = {}; @@ -22,6 +23,12 @@ function initInstance(props?: any): Ref> { currentLoadingInstanceID = newInstanceId; const appInstance = createApp({ setup() { + const { t } = useI18n(); + const message = ref(props.message); + if (message.value === '正在加载,请稍候...') { + message.value = t('loading.message'); + } + const loadingInstance = ref(); onUnmounted(() => { if (canChangePosition) { diff --git a/packages/ui-vue/components/lookup/src/components/modal-container.component.tsx b/packages/ui-vue/components/lookup/src/components/modal-container.component.tsx index f932342f841..dac66286e5e 100644 --- a/packages/ui-vue/components/lookup/src/components/modal-container.component.tsx +++ b/packages/ui-vue/components/lookup/src/components/modal-container.component.tsx @@ -192,8 +192,8 @@ export default defineComponent({ parentRef={ modalContainerRef.value} ref={selectedListRef} idField={lookupOptions.idField}>} {props.showCascadeControl && }
- - + + ; } diff --git a/packages/ui-vue/components/lookup/src/components/modal-container.props.ts b/packages/ui-vue/components/lookup/src/components/modal-container.props.ts index 6544a903cff..9b4edb1fb09 100644 --- a/packages/ui-vue/components/lookup/src/components/modal-container.props.ts +++ b/packages/ui-vue/components/lookup/src/components/modal-container.props.ts @@ -3,6 +3,7 @@ import { UserDataService } from '../composition/use-user-data'; import { UseHttpComposition } from '../composition/use-http'; export const lookupModalContainerProps = { + id: { type: String }, title: { type: String }, height: { type: Number, default: 50 }, draggable: { type: Boolean, default: true }, diff --git a/packages/ui-vue/components/lookup/src/components/search-bar/search-bar.component.tsx b/packages/ui-vue/components/lookup/src/components/search-bar/search-bar.component.tsx index e65125b83e4..c76ac03b52b 100644 --- a/packages/ui-vue/components/lookup/src/components/search-bar/search-bar.component.tsx +++ b/packages/ui-vue/components/lookup/src/components/search-bar/search-bar.component.tsx @@ -13,7 +13,7 @@ export default defineComponent({ props: searchBarProps, emits: ["search"], setup(props: SearchBarProps, context) { - + const searchIcon = ''; const useHttpComposition = inject(LOOKUP_HTTP_COMPOSITION) as UseHttpComposition; const { queryState } = useHttpComposition.lookupStates; @@ -97,7 +97,7 @@ export default defineComponent({ >
- '} + diff --git a/packages/ui-vue/components/lookup/src/components/search-bar/search-bar.props.ts b/packages/ui-vue/components/lookup/src/components/search-bar/search-bar.props.ts index 6aeacf3d87e..c07406e9022 100644 --- a/packages/ui-vue/components/lookup/src/components/search-bar/search-bar.props.ts +++ b/packages/ui-vue/components/lookup/src/components/search-bar/search-bar.props.ts @@ -5,6 +5,7 @@ export const searchBarProps = { fields: { type: Array, default: () => [] }, showAllColumns: { type: Boolean, default: true }, isNavigation: { type: Boolean, default: false }, + id: { type: String, default: '' } }; export type SearchBarProps = ExtractPropTypes; diff --git a/packages/ui-vue/components/lookup/src/composition/use-search-bar.tsx b/packages/ui-vue/components/lookup/src/composition/use-search-bar.tsx index 1f81d4886b9..8c968c11fcc 100644 --- a/packages/ui-vue/components/lookup/src/composition/use-search-bar.tsx +++ b/packages/ui-vue/components/lookup/src/composition/use-search-bar.tsx @@ -57,6 +57,7 @@ export function useSearchbar(props: LookupProps, isNavigation: boolean, lookupSt if (props.enableSearchBar && searchFields.value.length > 0) { return
'; + const popupIcon = ''; const popupOpenIcon = ''; const elementRef = ref(); @@ -288,7 +288,7 @@ export default defineComponent({ useHttpComposition={useHttpComposition} userDataService={userDataService} useDialog={{ cancelDialog, submitDialog }} showSelectedList={showSelections.value} selectionsManager={selectionsManager} showIncludeChildNodes={{ show: showIncludeChildNodes.value, value: props.includeChildNodesValue }} - showCascadeControl={showCascadeControl.value} isMaximized={isMaximized.value} locales={lookupLocales}> + showCascadeControl={showCascadeControl.value} isMaximized={isMaximized.value} locales={lookupLocales} id={props.id}> {{ default: () => ( Date: Mon, 4 Aug 2025 15:26:51 +0800 Subject: [PATCH 02/34] =?UTF-8?q?fix:=20=E6=B6=88=E6=81=AF=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E7=BB=84=E4=BB=B6=E8=AF=A2=E9=97=AE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/message-content/static-content.component.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/ui-vue/components/message-box/src/components/message-content/static-content.component.tsx b/packages/ui-vue/components/message-box/src/components/message-content/static-content.component.tsx index 0bb3c28dd24..67371bd1225 100644 --- a/packages/ui-vue/components/message-box/src/components/message-content/static-content.component.tsx +++ b/packages/ui-vue/components/message-box/src/components/message-content/static-content.component.tsx @@ -14,8 +14,9 @@ export default function ( ) { const exception = ref(props.exceptionInfo); const messageBoxIconClass = computed(() => { + const messageTypeCode = messageType.value === 'question' ? 'warning': messageType.value; const classObject = { 'f-icon': true } as Record; - const iconClass = `f-icon-${messageType.value}`; + const iconClass = `f-icon-${messageTypeCode}`; classObject[iconClass] = true; return classObject; }); -- Gitee From 989de41db6a6996ff5087bcddda4ea0772e42751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Mon, 4 Aug 2025 20:10:09 +0800 Subject: [PATCH 03/34] =?UTF-8?q?fix:=20messagerBox=20=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8B=96=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui-vue/components/message-box/src/message-box.component.tsx | 2 +- .../ui-vue/components/message-box/src/message-box.service.tsx | 1 + packages/ui-vue/components/modal/src/composition/type.ts | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/ui-vue/components/message-box/src/message-box.component.tsx b/packages/ui-vue/components/message-box/src/message-box.component.tsx index 8d1f2b6d195..3dee9cf178e 100644 --- a/packages/ui-vue/components/message-box/src/message-box.component.tsx +++ b/packages/ui-vue/components/message-box/src/message-box.component.tsx @@ -46,7 +46,7 @@ export default defineComponent({ }); const messageBoxContainerStyle = computed(() => { - const styleObject = {} as Record; + const styleObject = {cursor: 'default'} as Record; if (messageType.value === 'prompt') { styleObject.padding = '0.5rem 0.5rem 1rem 1.5rem'; } else if (messageType.value === 'error') { diff --git a/packages/ui-vue/components/message-box/src/message-box.service.tsx b/packages/ui-vue/components/message-box/src/message-box.service.tsx index 92410333570..75e08b37891 100644 --- a/packages/ui-vue/components/message-box/src/message-box.service.tsx +++ b/packages/ui-vue/components/message-box/src/message-box.service.tsx @@ -63,6 +63,7 @@ export default class MessageBoxService { fitContent: true, showMaxButton: false, draggable: true, + dragHandle: '.modal-tips', render: () => { return ; } diff --git a/packages/ui-vue/components/modal/src/composition/type.ts b/packages/ui-vue/components/modal/src/composition/type.ts index 0512b650a55..f8ad528362e 100644 --- a/packages/ui-vue/components/modal/src/composition/type.ts +++ b/packages/ui-vue/components/modal/src/composition/type.ts @@ -28,6 +28,7 @@ export interface ModalOptions { fitContent?: boolean; buttons?: ModalButton[]; draggable?: boolean; + dragHandle?: string | HTMLElement; resizeable?: boolean; showMaxButton?: boolean; showCloseButton?: boolean; -- Gitee From 3449c7fe6cfa5f5e74e64fb12f24bd30b5be93f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Mon, 4 Aug 2025 20:12:15 +0800 Subject: [PATCH 04/34] =?UTF-8?q?fix:=20=E4=BB=A3=E7=A0=81=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=99=A8=E4=BB=B6=E5=8A=A0=E8=BD=BDVUE=E7=89=88?= =?UTF-8?q?=E5=85=AC=E5=85=B1=E8=B5=84=E6=BA=90=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/code-editor/src/code-editor.component.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/code-editor/components/code-editor/src/code-editor.component.tsx b/packages/code-editor/components/code-editor/src/code-editor.component.tsx index c54dfa112b0..2b5b6db3f07 100644 --- a/packages/code-editor/components/code-editor/src/code-editor.component.tsx +++ b/packages/code-editor/components/code-editor/src/code-editor.component.tsx @@ -60,7 +60,7 @@ export default defineComponent({ function initMonaco() { if (!loadPromise) { loadPromise = new Promise((resolve) => { - const baseUrl = '/platform/common/web/assets/monaco'; + const baseUrl = '/platform/common/web/monaco'; const onGotAmdLoader: any = () => { (window as any).require.config({ paths: { 'vs': `${baseUrl}/vs` }, -- Gitee From 4ed7fb825bcbf7977bf55b2595a6e2c9c8e561b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Tue, 5 Aug 2025 08:51:23 +0800 Subject: [PATCH 05/34] =?UTF-8?q?fix:=20=E8=8B=B1=E6=96=87=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E9=A1=B9=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/ui-vue/components/message-box/src/locales/ui/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/components/message-box/src/locales/ui/en.json b/packages/ui-vue/components/message-box/src/locales/ui/en.json index d77d134ca2f..e396f76f87d 100644 --- a/packages/ui-vue/components/message-box/src/locales/ui/en.json +++ b/packages/ui-vue/components/message-box/src/locales/ui/en.json @@ -28,7 +28,7 @@ "copy": "Copy Details", "copySuccess": "Copy Succeeded!", "copyFailed": "Replication Failed!", - "roger": "Got It." + "roger": "OK" } } } \ No newline at end of file -- Gitee From 8396d9f27e9dc2d13b8508430b5b356b3f2a59b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Tue, 5 Aug 2025 10:30:36 +0800 Subject: [PATCH 06/34] =?UTF-8?q?fix:=20combo-list=20=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=A2=9E=E5=8A=A0ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui-vue/components/combo-list/src/combo-list.component.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/components/combo-list/src/combo-list.component.tsx b/packages/ui-vue/components/combo-list/src/combo-list.component.tsx index 24872962884..c7971a8aac6 100644 --- a/packages/ui-vue/components/combo-list/src/combo-list.component.tsx +++ b/packages/ui-vue/components/combo-list/src/combo-list.component.tsx @@ -36,7 +36,7 @@ export default defineComponent({ let displayTextStore = ''; const { dataSource, displayText, editable, modelValue, getSelectedItemsByDisplayText, getItemsByDisplayText } = useDataSource(props); - const dropdownIcon = ref(props.dropdownIcon); + const dropdownIcon = ref(props.dropDownIcon); if (dropdownIcon.value === '') { dropdownIcon.value = ''; } -- Gitee From c5dec97d5e3c072970465e12a9c4db8cb10d5845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Tue, 5 Aug 2025 11:49:14 +0800 Subject: [PATCH 07/34] =?UTF-8?q?fix:=20lookup=E7=BB=84=E4=BB=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=A4=9A=E8=AF=AD=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui-vue/components/lookup/src/composition/use-locales.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/components/lookup/src/composition/use-locales.ts b/packages/ui-vue/components/lookup/src/composition/use-locales.ts index feef9a98863..daa33bd659b 100644 --- a/packages/ui-vue/components/lookup/src/composition/use-locales.ts +++ b/packages/ui-vue/components/lookup/src/composition/use-locales.ts @@ -52,7 +52,7 @@ export function useLookupLocales(props: LookupProps): LookupLocaleData { const tabs = { datalist: getLocaleValue('lookup.datalist') || '数据列表', - favorite: getLocaleValue('lookup.favorite') || '收藏', + favorite: getLocaleValue('lookup.favorites') || '收藏夹', }; const buttons = { -- Gitee From 5ba403bfa25eec92b9d8cae15acb375d2d145bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Tue, 5 Aug 2025 12:22:25 +0800 Subject: [PATCH 08/34] =?UTF-8?q?fix:=20=E6=97=A5=E6=9C=9F=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=A4=9A=E8=AF=AD=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../date-picker-container/date-picker-container.component.tsx | 2 +- .../src/components/date-range/date-range.component.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ui-vue/components/date-picker/src/components/date-picker-container/date-picker-container.component.tsx b/packages/ui-vue/components/date-picker/src/components/date-picker-container/date-picker-container.component.tsx index c96502d589d..ec50d7cac93 100644 --- a/packages/ui-vue/components/date-picker/src/components/date-picker-container/date-picker-container.component.tsx +++ b/packages/ui-vue/components/date-picker/src/components/date-picker-container/date-picker-container.component.tsx @@ -1307,7 +1307,7 @@ export default defineComponent({ {enablePeriod.value && selectMode.value === 'day' &&
} - 确定 + {props.locales.buttons.commit}
} diff --git a/packages/ui-vue/components/date-picker/src/components/date-range/date-range.component.tsx b/packages/ui-vue/components/date-picker/src/components/date-range/date-range.component.tsx index dca75e3e5ea..9bc57e4a2d0 100644 --- a/packages/ui-vue/components/date-picker/src/components/date-range/date-range.component.tsx +++ b/packages/ui-vue/components/date-picker/src/components/date-range/date-range.component.tsx @@ -195,7 +195,7 @@ export default defineComponent({ }; onMounted(() => { - + nameOfMonths.value = props.locales.monthLabels; }); function onMouseEnter() { -- Gitee From 7b95a796651e7aba7728b955c771850b9db1710a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Tue, 5 Aug 2025 15:59:07 +0800 Subject: [PATCH 09/34] =?UTF-8?q?fix:=20messagerBox=E3=80=81=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E7=BB=84=E4=BB=B6=E5=A4=9A=E8=AF=AD=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/composition/use-locales.ts | 50 +++++++++---------- .../components/footer/footer.component.tsx | 7 +++ .../src/composition/use-locales.ts | 2 + .../message-box/src/locales/ui/en.json | 1 + .../message-box/src/locales/ui/zh-CHS.json | 1 + .../message-box/src/locales/ui/zh-CHT.json | 1 + .../components/modal/src/modal.component.tsx | 7 +++ 7 files changed, 44 insertions(+), 25 deletions(-) diff --git a/packages/ui-vue/components/date-picker/src/composition/use-locales.ts b/packages/ui-vue/components/date-picker/src/composition/use-locales.ts index 33dcc169b47..9bb9117568b 100644 --- a/packages/ui-vue/components/date-picker/src/composition/use-locales.ts +++ b/packages/ui-vue/components/date-picker/src/composition/use-locales.ts @@ -80,31 +80,31 @@ export function useDatePickerLocale(props: DatePickerProps): DatePickerLocale { }; const quickSelectors = { - today: getValue('datepicker.quickSelectItems.today'), - yesterday: getValue('datepicker.quickSelectItems.yesterday'), - tomorrow: getValue('datepicker.quickSelectItems.tomorrow'), - thisMonday: getValue('datepicker.quickSelectItems.thisMonday'), - nextMonday: getValue('datepicker.quickSelectItems.nextMonday'), - firstDayOfMonth: getValue('datepicker.quickSelectItems.firstDayOfMonth'), - lastDayOfMonth: getValue('datepicker.quickSelectItems.lastDayOfMonth'), - firstDayOfLastMonth: getValue('datepicker.quickSelectItems.firstDayOfLastMonth'), - lastDayOfLastMonth: getValue('datepicker.quickSelectItems.lastDayOfLastMonth'), - firstDayOfYear: getValue('datepicker.quickSelectItems.firstDayOfYear'), - lastDayOfYear: getValue('datepicker.quickSelectItems.lastDayOfYear'), - firstDayOfQuarter: getValue('datepicker.quickSelectItems.firstDayOfQuarter'), - lastDayOfQuarter: getValue('datepicker.quickSelectItems.lastDayOfQuarter'), - thisWeek: getValue('datepicker.quickSelectItems.thisWeek'), - lastWeek: getValue('datepicker.quickSelectItems.lastWeek'), - nextWeek: getValue('datepicker.quickSelectItems.nextWeek'), - past7Days: getValue('datepicker.quickSelectItems.past7Days'), - past30Days: getValue('datepicker.quickSelectItems.past30Days'), - thisMonth: getValue('datepicker.quickSelectItems.thisMonth'), - lastMonth: getValue('datepicker.quickSelectItems.lastMonth'), - thisQuarter: getValue('datepicker.quickSelectItems.thisQuarter'), - lastQuarter: getValue('datepicker.quickSelectItems.lastQuarter'), - thisYear: getValue('datepicker.quickSelectItems.thisYear'), - lastYear: getValue('datepicker.quickSelectItems.lastYear'), - recent3Months: getValue('datepicker.quickSelectItems.recent3Months') + today: getValue('datepicker.quickSelectors.today'), + yesterday: getValue('datepicker.quickSelectors.yesterday'), + tomorrow: getValue('datepicker.quickSelectors.tomorrow'), + thisMonday: getValue('datepicker.quickSelectors.thisMonday'), + nextMonday: getValue('datepicker.quickSelectors.nextMonday'), + firstDayOfMonth: getValue('datepicker.quickSelectors.firstDayOfMonth'), + lastDayOfMonth: getValue('datepicker.quickSelectors.lastDayOfMonth'), + firstDayOfLastMonth: getValue('datepicker.quickSelectors.firstDayOfLastMonth'), + lastDayOfLastMonth: getValue('datepicker.quickSelectors.lastDayOfLastMonth'), + firstDayOfYear: getValue('datepicker.quickSelectors.firstDayOfYear'), + lastDayOfYear: getValue('datepicker.quickSelectors.lastDayOfYear'), + firstDayOfQuarter: getValue('datepicker.quickSelectors.firstDayOfQuarter'), + lastDayOfQuarter: getValue('datepicker.quickSelectors.lastDayOfQuarter'), + thisWeek: getValue('datepicker.quickSelectors.thisWeek'), + lastWeek: getValue('datepicker.quickSelectors.lastWeek'), + nextWeek: getValue('datepicker.quickSelectors.nextWeek'), + past7Days: getValue('datepicker.quickSelectors.past7Days'), + past30Days: getValue('datepicker.quickSelectors.past30Days'), + thisMonth: getValue('datepicker.quickSelectors.thisMonth'), + lastMonth: getValue('datepicker.quickSelectors.lastMonth'), + thisQuarter: getValue('datepicker.quickSelectors.thisQuarter'), + lastQuarter: getValue('datepicker.quickSelectors.lastQuarter'), + thisYear: getValue('datepicker.quickSelectors.thisYear'), + lastYear: getValue('datepicker.quickSelectors.lastYear'), + recent3Months: getValue('datepicker.quickSelectors.recent3Months') }; return { diff --git a/packages/ui-vue/components/message-box/src/components/footer/footer.component.tsx b/packages/ui-vue/components/message-box/src/components/footer/footer.component.tsx index 1e1df50e4c4..7c2f664c92f 100644 --- a/packages/ui-vue/components/message-box/src/components/footer/footer.component.tsx +++ b/packages/ui-vue/components/message-box/src/components/footer/footer.component.tsx @@ -34,6 +34,13 @@ export default function ( const renderCopyButton = getCopyButton(props, useCopyComposition, useFeedbackComposition, locales); + if (okButtonText.value === '关闭') { + okButtonText.value = locales.close; + } else if (okButtonText.value === '知道了') { + okButtonText.value = locales.exception.roger; + } + + function onClickCancelButton($event: MouseEvent) { if (messageType.value === 'question') { context.emit('reject'); diff --git a/packages/ui-vue/components/message-box/src/composition/use-locales.ts b/packages/ui-vue/components/message-box/src/composition/use-locales.ts index 99128dc23a4..a18f4d856c9 100644 --- a/packages/ui-vue/components/message-box/src/composition/use-locales.ts +++ b/packages/ui-vue/components/message-box/src/composition/use-locales.ts @@ -3,6 +3,7 @@ import { MessageBoxProps } from "../message-box.props"; export interface MessageBoxLocaleData { yes: string; + close: string; no: string; ok: string; cancel: string; @@ -33,6 +34,7 @@ export function useMessagerLocales(props: MessageBoxProps): MessageBoxLocaleData return { yes: getValue('messageBox.yes') || '是', no: getValue('messageBox.no') ||'否', + close: getValue('messageBox.close') || '关闭', ok: getValue('messageBox.ok', props.okButtonText, '确定') ||'确定', cancel: getValue('messageBox.cancel', props.cancelButtonText, '取消') || '取消', title: getValue('messageBox.title') || '系统提示', diff --git a/packages/ui-vue/components/message-box/src/locales/ui/en.json b/packages/ui-vue/components/message-box/src/locales/ui/en.json index e396f76f87d..853a333bdd3 100644 --- a/packages/ui-vue/components/message-box/src/locales/ui/en.json +++ b/packages/ui-vue/components/message-box/src/locales/ui/en.json @@ -3,6 +3,7 @@ "yes": "Yes", "no": "No", "ok": "OK", + "close": "Close", "cancel": "Cancel", "title": "System Information", "errorTitle": "Error Information", diff --git a/packages/ui-vue/components/message-box/src/locales/ui/zh-CHS.json b/packages/ui-vue/components/message-box/src/locales/ui/zh-CHS.json index 8de228c9e7c..dff8681f923 100644 --- a/packages/ui-vue/components/message-box/src/locales/ui/zh-CHS.json +++ b/packages/ui-vue/components/message-box/src/locales/ui/zh-CHS.json @@ -3,6 +3,7 @@ "yes": "是", "no": "否", "ok": "确定", + "close": "关闭", "cancel": "取消", "title": "系统提示", "errorTitle": "错误提示", diff --git a/packages/ui-vue/components/message-box/src/locales/ui/zh-CHT.json b/packages/ui-vue/components/message-box/src/locales/ui/zh-CHT.json index 8126b3ba39b..12ea9c1e8dc 100644 --- a/packages/ui-vue/components/message-box/src/locales/ui/zh-CHT.json +++ b/packages/ui-vue/components/message-box/src/locales/ui/zh-CHT.json @@ -3,6 +3,7 @@ "yes": "是", "no": "否", "ok": "確定", + "close": "關閉", "cancel": "取消", "title": "係統提示", "errorTitle": "錯誤提示", diff --git a/packages/ui-vue/components/modal/src/modal.component.tsx b/packages/ui-vue/components/modal/src/modal.component.tsx index 7a65d0a351f..2592c3fc581 100644 --- a/packages/ui-vue/components/modal/src/modal.component.tsx +++ b/packages/ui-vue/components/modal/src/modal.component.tsx @@ -21,6 +21,7 @@ import { useResizeable } from './composition/use-resizeable'; import { useDraggable } from './composition/use-draggable'; import './modal.scss'; import { useEnter, useEsc } from './composition/use-shortcut'; +import { useI18n } from 'vue-i18n'; export default defineComponent({ name: 'FModal', @@ -46,6 +47,12 @@ export default defineComponent({ const containment = ref(props.containment || null); const modalContainerRef = ref(); + const { t } = useI18n(); + if(title.value === '错误提示') { + title.value = t('messageBox.errorTitle'); + } + + const hasModal = ref(false); function close($event: MouseEvent, accept?: boolean) { -- Gitee From 150c4cc92721c1f550ced6f488a5d7d702ca9e15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Tue, 5 Aug 2025 16:56:15 +0800 Subject: [PATCH 10/34] =?UTF-8?q?fix:=20timepicker=20=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E5=A4=9A=E8=AF=AD=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/time-picker/src/locales/ui/en.json | 10 ++++++++++ .../components/time-picker/src/locales/ui/zh-CHS.json | 10 ++++++++++ .../components/time-picker/src/locales/ui/zh-CHT.json | 10 ++++++++++ 3 files changed, 30 insertions(+) create mode 100644 packages/ui-vue/components/time-picker/src/locales/ui/en.json create mode 100644 packages/ui-vue/components/time-picker/src/locales/ui/zh-CHS.json create mode 100644 packages/ui-vue/components/time-picker/src/locales/ui/zh-CHT.json diff --git a/packages/ui-vue/components/time-picker/src/locales/ui/en.json b/packages/ui-vue/components/time-picker/src/locales/ui/en.json new file mode 100644 index 00000000000..862a2e3a386 --- /dev/null +++ b/packages/ui-vue/components/time-picker/src/locales/ui/en.json @@ -0,0 +1,10 @@ +{ + "timePicker": { + "placeholder": "Please select a time", + "time": { + "hour": "Hour", + "minute": "Minute", + "seconds": "Second" + } + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/time-picker/src/locales/ui/zh-CHS.json b/packages/ui-vue/components/time-picker/src/locales/ui/zh-CHS.json new file mode 100644 index 00000000000..86966cd8c84 --- /dev/null +++ b/packages/ui-vue/components/time-picker/src/locales/ui/zh-CHS.json @@ -0,0 +1,10 @@ +{ + "timePicker": { + "placeholder": "请选择时间", + "time": { + "hour": "时", + "minute": "分", + "seconds": "秒" + } + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/time-picker/src/locales/ui/zh-CHT.json b/packages/ui-vue/components/time-picker/src/locales/ui/zh-CHT.json new file mode 100644 index 00000000000..8e23d83b46e --- /dev/null +++ b/packages/ui-vue/components/time-picker/src/locales/ui/zh-CHT.json @@ -0,0 +1,10 @@ +{ + "timePicker": { + "placeholder": "請選擇時間", + "time": { + "hour": "時", + "minute": "分", + "seconds": "秒" + } + } +} \ No newline at end of file -- Gitee From 87d580cb097afc3ba2fab809392be8493da7c0af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Tue, 5 Aug 2025 20:12:53 +0800 Subject: [PATCH 11/34] =?UTF-8?q?fix:=20=E5=A4=9A=E8=AF=AD=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=98=93=E7=94=A8=E6=80=A7=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/language-contents.component.tsx | 11 +++++++++-- .../language-textbox.design.component.tsx | 5 ++++- .../src/language-textbox.component.tsx | 6 +++++- .../static-content.component.tsx | 9 ++++++++- .../message-box/src/composition/use-locales.ts | 8 +++++--- .../message-box/src/message-box.component.tsx | 1 + .../message-box/src/message-box.service.tsx | 2 +- .../notify/src/components/toast.component.tsx | 17 +++++++++++++---- 8 files changed, 46 insertions(+), 13 deletions(-) diff --git a/packages/ui-vue/components/language-textbox/src/components/language-contents.component.tsx b/packages/ui-vue/components/language-textbox/src/components/language-contents.component.tsx index b9aed7e3497..580073636ee 100644 --- a/packages/ui-vue/components/language-textbox/src/components/language-contents.component.tsx +++ b/packages/ui-vue/components/language-textbox/src/components/language-contents.component.tsx @@ -1,4 +1,4 @@ -import { defineComponent, ref, watch } from "vue"; +import { defineComponent, nextTick, onMounted, ref, watch } from "vue"; import { FInputGroup } from "@farris/ui-vue/components/input-group"; import { LanguageItem } from "../types"; @@ -14,9 +14,16 @@ export default defineComponent({ const languages = ref(props.languages); const data = ref(props.modelValue); + const inputsRef = ref(); + + onMounted(()=> { + setTimeout(() => { + inputsRef.value?.querySelector('input')?.focus(); + }, 130); + }); return () => { - return
    + return
      { languages.value?.map((item: LanguageItem) => { return
    • diff --git a/packages/ui-vue/components/language-textbox/src/designer/language-textbox.design.component.tsx b/packages/ui-vue/components/language-textbox/src/designer/language-textbox.design.component.tsx index de1b72153fa..b1c674f1516 100644 --- a/packages/ui-vue/components/language-textbox/src/designer/language-textbox.design.component.tsx +++ b/packages/ui-vue/components/language-textbox/src/designer/language-textbox.design.component.tsx @@ -4,6 +4,9 @@ import { useLanguageTextboxDesignerRules } from './use-language-textbox.rules'; export default defineComponent({ name: 'FLanguageTextboxDesign', + props: { + placeholder: { type: String, default: '' } + }, setup(props, context) { const elementRef = ref(); @@ -23,7 +26,7 @@ export default defineComponent({ return () => { return
      - +
      diff --git a/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx b/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx index e0dd9419a7e..d534972e7fe 100644 --- a/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx +++ b/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx @@ -5,7 +5,7 @@ import FButtonEdit from '@farris/ui-vue/components/button-edit'; import { languageTextBoxProps } from "./language-textbox.props"; import LanguageContents from "./components/language-contents.component"; import { LanguageItem } from "./types"; -import { useI18n } from 'vue-i18n' +import { useI18n } from 'vue-i18n'; export default defineComponent({ name: 'FLanguageTextbox', @@ -18,6 +18,10 @@ export default defineComponent({ const displayText = computed(() => modelValue.value?.[currentLang.value]); const buttonEditorRef = ref(); + watch(() => props.modelValue, (newValue) => { + modelValue.value = newValue; + }); + const updateLangOrder = (langValue: LanguageItem[]) => { if (langValue?.length <= 1) { return; diff --git a/packages/ui-vue/components/message-box/src/components/message-content/static-content.component.tsx b/packages/ui-vue/components/message-box/src/components/message-content/static-content.component.tsx index 67371bd1225..2530e9d81ab 100644 --- a/packages/ui-vue/components/message-box/src/components/message-content/static-content.component.tsx +++ b/packages/ui-vue/components/message-box/src/components/message-content/static-content.component.tsx @@ -49,6 +49,13 @@ export default function ( const renderMessageDetail = getMessageDetailRender(); + const wrapStyles = computed(() => { + if (locales.locale === 'en') { + return { wordBreak: 'keep-all', overflowWrap: 'break-word' }; + } + return {}; + }); + return () => { return ( <> @@ -56,7 +63,7 @@ export default function (
      diff --git a/packages/ui-vue/components/message-box/src/composition/use-locales.ts b/packages/ui-vue/components/message-box/src/composition/use-locales.ts index a18f4d856c9..68407c165ef 100644 --- a/packages/ui-vue/components/message-box/src/composition/use-locales.ts +++ b/packages/ui-vue/components/message-box/src/composition/use-locales.ts @@ -18,12 +18,13 @@ export interface MessageBoxLocaleData { copySuccess: string; copyFailed: string; roger: string; - } + }, + locale: string; } export function useMessagerLocales(props: MessageBoxProps): MessageBoxLocaleData{ - const { t:getLocaleValue } = useI18n(); + const { t:getLocaleValue, locale } = useI18n(); function getValue(localeKey, propertyValue?: string, defaultValue?: string) { if (propertyValue === defaultValue) { return getLocaleValue(localeKey); @@ -48,6 +49,7 @@ export function useMessagerLocales(props: MessageBoxProps): MessageBoxLocaleData copySuccess: getValue('messageBox.exception.copySuccess') || '复制成功', copyFailed: getValue('messageBox.exception.copyFailed') || '复制失败', roger: getValue('messageBox.exception.roger') || '知道了' - } + }, + locale: locale.value }; } diff --git a/packages/ui-vue/components/message-box/src/message-box.component.tsx b/packages/ui-vue/components/message-box/src/message-box.component.tsx index 3dee9cf178e..9f04b53686e 100644 --- a/packages/ui-vue/components/message-box/src/message-box.component.tsx +++ b/packages/ui-vue/components/message-box/src/message-box.component.tsx @@ -79,6 +79,7 @@ export default defineComponent({ return () => { return (
      + {!props.exceptionInfo &&
      }
      {renderContent()}
      diff --git a/packages/ui-vue/components/message-box/src/message-box.service.tsx b/packages/ui-vue/components/message-box/src/message-box.service.tsx index 75e08b37891..7accc169ef7 100644 --- a/packages/ui-vue/components/message-box/src/message-box.service.tsx +++ b/packages/ui-vue/components/message-box/src/message-box.service.tsx @@ -63,7 +63,7 @@ export default class MessageBoxService { fitContent: true, showMaxButton: false, draggable: true, - dragHandle: '.modal-tips', + dragHandle: '.messager-draggable', render: () => { return ; } diff --git a/packages/ui-vue/components/notify/src/components/toast.component.tsx b/packages/ui-vue/components/notify/src/components/toast.component.tsx index 590f8f486ea..cc465f0b7ee 100644 --- a/packages/ui-vue/components/notify/src/components/toast.component.tsx +++ b/packages/ui-vue/components/notify/src/components/toast.component.tsx @@ -16,6 +16,7 @@ import { computed, defineComponent, ref, SetupContext, watch } from 'vue'; import { NotifyButton, NotifyData } from '../notify.props'; import { ToastProps, toastProps } from './toast.props'; +import { useI18n } from 'vue-i18n'; export default defineComponent({ @@ -23,6 +24,7 @@ export default defineComponent({ props: toastProps, emits: ['close', 'click'] as (string[] & ThisType) | undefined, setup: (props: ToastProps, context: SetupContext) => { + const {locale, t} = useI18n(); const animateIn = ref(props.animate); const animateEnd = 'fadeOut'; const toast = computed(() => { @@ -65,6 +67,13 @@ export default defineComponent({ const shouldShowButtonsInTitle = computed(() => !!toast.value.buttons || !!context.slots.default); + const wrapStyles = computed(() => { + if (locale.value === 'en') { + return { wordBreak: 'keep-all', overflowWrap: 'break-word' }; + } + return {}; + }); + function onCloseToast($event: Event) { $event.stopPropagation(); $event.preventDefault(); @@ -109,7 +118,7 @@ export default defineComponent({ return (
      {shouldShowCloseButton.value && ( - )} @@ -122,18 +131,18 @@ export default defineComponent({ {shouldShowTitle.value && ( <> -

      +

      {shouldShowButtonsInTitle.value && renderNotifyButtons()} )} {shouldShowMessageOnly.value && (toast.value.buttons ? (
      - +
      {renderNotifyButtons()}
      ) : ( - + ))}
      -- Gitee From e938f848bdd54d0ec0309bee5b3a6e29df1f075b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Wed, 6 Aug 2025 11:11:55 +0800 Subject: [PATCH 12/34] =?UTF-8?q?fix:=20modal=E5=86=85=E7=BD=AE=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E6=94=AF=E6=8C=81=E5=A4=9A=E8=AF=AD=EF=BC=9Bnotify=20?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/ui-vue/components/modal/src/modal.component.tsx | 4 ++-- packages/ui-vue/components/notify/src/notify.service.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/ui-vue/components/modal/src/modal.component.tsx b/packages/ui-vue/components/modal/src/modal.component.tsx index 2592c3fc581..3b67f362203 100644 --- a/packages/ui-vue/components/modal/src/modal.component.tsx +++ b/packages/ui-vue/components/modal/src/modal.component.tsx @@ -75,7 +75,7 @@ export default defineComponent({ const defaultButtons: ModalButton[] = [ { name: 'cancel', - text: '取消', + text: t('messageBox.cancel') || '取消', class: 'btn btn-secondary', handle: ($event: MouseEvent) => { close($event, false); @@ -83,7 +83,7 @@ export default defineComponent({ }, { name: 'accept', - text: '确定', + text: t('messageBox.ok') || '确定', class: 'btn btn-primary', handle: ($event: MouseEvent) => { close($event, true); diff --git a/packages/ui-vue/components/notify/src/notify.service.tsx b/packages/ui-vue/components/notify/src/notify.service.tsx index 4e2300e0cab..2adaa70fcf8 100644 --- a/packages/ui-vue/components/notify/src/notify.service.tsx +++ b/packages/ui-vue/components/notify/src/notify.service.tsx @@ -23,7 +23,7 @@ export default class NotifyService { // 获取完全转义后的内容(含 < > & 等字符转义) const escapedContent = container.innerHTML; return escapedContent - .replace(/ /g, ' ') // 普通空格转义 + // .replace(/ /g, ' ') // 普通空格转义 .replace(/\\n/g, '
      ') // 保留换行 .replace(/\\t/g, '    ') // 保留制表符 .replace(/\\r/g, ''); // 移除回车(通常不需要单独处理) -- Gitee From f476f873c62e56c7af439642c616de4f0f3c1d0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Wed, 6 Aug 2025 17:15:55 +0800 Subject: [PATCH 13/34] =?UTF-8?q?fix:=20lookup=20=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E5=B8=AE=E5=8A=A9=E5=B7=B2=E7=9F=A5=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../language-contents.component.tsx | 2 +- .../components/popup-container.component.tsx | 2 +- .../lookup/src/composition/use-treenode.ts | 12 ++-- .../lookup/src/composition/use-user-data.ts | 3 +- .../converters/lookup-property.converter.ts | 6 +- .../property-config/lookup.property-config.ts | 2 +- packages/ui-vue/docs/assets/i18n/ui/en.json | 69 ++++++++++++++----- .../ui-vue/docs/assets/i18n/ui/zh-CHS.json | 37 ++++++++++ .../ui-vue/docs/assets/i18n/ui/zh-CHT.json | 37 ++++++++++ 9 files changed, 141 insertions(+), 29 deletions(-) diff --git a/packages/ui-vue/components/language-textbox/src/components/language-contents.component.tsx b/packages/ui-vue/components/language-textbox/src/components/language-contents.component.tsx index 580073636ee..3ccc3a7341a 100644 --- a/packages/ui-vue/components/language-textbox/src/components/language-contents.component.tsx +++ b/packages/ui-vue/components/language-textbox/src/components/language-contents.component.tsx @@ -13,7 +13,7 @@ export default defineComponent({ setup(props, context) { const languages = ref(props.languages); - const data = ref(props.modelValue); + const data = ref(props.modelValue || {}); const inputsRef = ref(); onMounted(()=> { diff --git a/packages/ui-vue/components/lookup/src/components/popup-container.component.tsx b/packages/ui-vue/components/lookup/src/components/popup-container.component.tsx index 0c27ec26307..2ac302383ef 100644 --- a/packages/ui-vue/components/lookup/src/components/popup-container.component.tsx +++ b/packages/ui-vue/components/lookup/src/components/popup-container.component.tsx @@ -87,7 +87,7 @@ export default defineComponent({ return () => { return
      - {lookupOptions.multiSelect && renderSearchBar()} + {renderSearchBar()} {renderDataComponent.value()} {/*
      */}
      ; diff --git a/packages/ui-vue/components/lookup/src/composition/use-treenode.ts b/packages/ui-vue/components/lookup/src/composition/use-treenode.ts index de69cb33106..c45905d2b2b 100644 --- a/packages/ui-vue/components/lookup/src/composition/use-treenode.ts +++ b/packages/ui-vue/components/lookup/src/composition/use-treenode.ts @@ -175,17 +175,15 @@ export function useTreeNode(lookupStates: LookupStates, useCheckPropsComposition lookupState.flattenTreeNodes?.push(...children); } - /* nextTick(() => { gridRef.addChildrenToNode(children, parentId); - const itemIds = lookupStates.selectionState.value?.map(item => item[lookupOptions.idField]) ?? []; - const selectedIds = children - .filter(child => itemIds.includes(child.id)) - .map(child => child.id); + // const itemIds = lookupStates.selectionState.value?.map(item => item[lookupOptions.idField]) ?? []; + // const selectedIds = children + // .filter(child => itemIds.includes(child.id)) + // .map(child => child.id); - selectedIds.length && gridRef.selectItemByIds(selectedIds); + // selectedIds.length && gridRef.selectItemByIds(selectedIds); }); - */ } diff --git a/packages/ui-vue/components/lookup/src/composition/use-user-data.ts b/packages/ui-vue/components/lookup/src/composition/use-user-data.ts index 77908960a11..325b244b4da 100644 --- a/packages/ui-vue/components/lookup/src/composition/use-user-data.ts +++ b/packages/ui-vue/components/lookup/src/composition/use-user-data.ts @@ -36,7 +36,8 @@ export function useUserData(props: LookupProps, useHttpComposition: UseHttpCompo const {lookupOptions} = lookupStates; const dataKey = computed(() => { - return encrypt(lookupOptions.userDataKey || props.id); + const key = lookupOptions.userDataKey || props.id; + return key ? encrypt(key): ''; }); const userDataState = reactive({ key: dataKey.value, data: {} }); diff --git a/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts b/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts index a1c40d71f64..a7f6ca6b6c9 100644 --- a/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts +++ b/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts @@ -33,14 +33,16 @@ export const lookupDefaultConverter = { return schema.editor[propertyKey] || 'default'; } - if (propertyKey === 'placeholder') { + if (propertyKey === 'placeholder') { return schema.editor['placeholder'] || '请选择'; } - return schema.editor[propertyKey]; }, convertTo: (schema: Record, propertyKey: string, propertyValue: any) => { schema.editor[propertyKey] = propertyValue; + if(propertyKey === 'multiSelect' && !propertyValue) { + schema.editor['enableCascade'] = false; + } } }; diff --git a/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts b/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts index ed5c60ef954..4a8c43715d7 100644 --- a/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts +++ b/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts @@ -834,7 +834,7 @@ export class LookupPropertyConfig extends InputBaseProperty { $converter: lookupDefaultConverter, title: "显示级联选择控件", type: "boolean", - visible: !!editorOptions.enableCascade && this.isTree(editorOptions) + visible: !!editorOptions.enableCascade && this.isTree(editorOptions) }, cascadeValue: { description: "级联选择默认状态", diff --git a/packages/ui-vue/docs/assets/i18n/ui/en.json b/packages/ui-vue/docs/assets/i18n/ui/en.json index 594050f6750..367aba0928c 100644 --- a/packages/ui-vue/docs/assets/i18n/ui/en.json +++ b/packages/ui-vue/docs/assets/i18n/ui/en.json @@ -3,6 +3,14 @@ "selectedStart": "Selected: ", "selectedEnd": " items" }, + "timePicker": { + "placeholder": "Please select a time", + "time": { + "hour": "Hour", + "minute": "Minute", + "seconds": "Second" + } + }, "tabs": { "more": "More", "leftButton": "Left", @@ -56,22 +64,22 @@ } }, "pagination": { - "message": "Total {1} items ", + "message": "Total {1} Items ", "totalInfo": { - "firstText": "total", - "lastText": "items" + "firstText": "Total", + "lastText": "Items" }, "pageList": { - "firstText": "display", - "lastText": "items" + "firstText": "Display", + "lastText": "Items" }, - "previous": "previous", - "next": "next", + "previous": "Previous", + "next": "Next", "goto": { - "prefix": "go to", + "prefix": "Go to", "suffix": "" }, - "show": "show" + "show": "Display" }, "numberSpinner": { "placeholder": "Please enter the number", @@ -84,6 +92,7 @@ "yes": "Yes", "no": "No", "ok": "OK", + "close": "Close", "cancel": "Cancel", "title": "System Information", "errorTitle": "Error Information", @@ -109,7 +118,7 @@ "copy": "Copy Details", "copySuccess": "Copy Succeeded!", "copyFailed": "Replication Failed!", - "roger": "Got It." + "roger": "OK" } }, "lookup": { @@ -207,7 +216,7 @@ } }, "eventParameter": { - "title": "parameter editor", + "title": "Parameter Editor", "ok": "confirm", "cancel": "cancel", "workFlowClass": { @@ -287,6 +296,34 @@ "clearSelections": "Clear All", "delete": "Delete", "selected": "Selected,Days" + }, + "quickSelectors": { + "today": "Today", + "yesterday": "Yesterday", + "tomorrow": "Tomorrow", + "thisMonday": "This Monday", + "nextMonday": "Next Monday", + "firstDayOfMonth": "First Day of Month", + "lastDayOfMonth": "Last Day of Month", + "firstDayOfLastMonth": "First Day of Last Month", + "lastDayOfLastMonth": "Last Day of Last Month", + "firstDayOfYear": "First Day of Year", + "lastDayOfYear": "Last Day of Year", + "firstDayOfQuarter": "First Day of Quarter", + "lastDayOfQuarter": "Last Day of Quarter", + "thisWeek": "This Week", + "lastWeek": "Last Week", + "nextWeek": "Next Week", + "past7Days": "Past 7 Days", + "past30Days": "Past 30 Days", + "thisMonth": "This Month", + "lastMonth": "Last Month", + "thisQuarter": "This Quarter", + "lastQuarter": "Last Quarter", + "thisYear": "This Year", + "lastYear": "Last Year", + "recent3Months": "Recent 3 Months", + "recent6Months": "Recent 6 Months" } }, "datagrid": { @@ -295,7 +332,7 @@ "pagination": { "previousLabel": "Prev Page", "nextLabel": "Next Page", - "message": "Total {1} items", + "message": "Total {1} Items", "pagelist": { "firstText": "Display", "lastText": "items" @@ -305,7 +342,7 @@ "title": "Conditions", "reset": "Reset", "clear": "Clear", - "clearAll": "Clear all conditions", + "clearAll": "Clear All Conditions", "setting": "Settings", "nofilter": "[ Empty ]", "checkAll": "Check All", @@ -398,11 +435,11 @@ "clear": "Empty" }, "summary": { - "title": "current page summary" + "title": "Current Page Summary" }, - "loadingMessage": "loading", + "loadingMessage": "Loading", "commandColumn": { - "title": "operate" + "title": "Operation" } }, "condition": { diff --git a/packages/ui-vue/docs/assets/i18n/ui/zh-CHS.json b/packages/ui-vue/docs/assets/i18n/ui/zh-CHS.json index 9dd0f0d7909..a392099f2cb 100644 --- a/packages/ui-vue/docs/assets/i18n/ui/zh-CHS.json +++ b/packages/ui-vue/docs/assets/i18n/ui/zh-CHS.json @@ -3,6 +3,14 @@ "selectedStart": "已选:", "selectedEnd": "项数据" }, + "timePicker": { + "placeholder": "请选择时间", + "time": { + "hour": "时", + "minute": "分", + "seconds": "秒" + } + }, "tabs": { "more": "更多", "leftButton": "向左", @@ -84,6 +92,7 @@ "yes": "是", "no": "否", "ok": "确定", + "close": "关闭", "cancel": "取消", "title": "系统提示", "errorTitle": "错误提示", @@ -287,6 +296,34 @@ "clearSelections": "清空", "delete": "删除", "selected": "已选,天" + }, + "quickSelectors": { + "today": "今天", + "yesterday": "昨天", + "tomorrow": "明天", + "thisMonday": "本周一", + "nextMonday": "下周一", + "firstDayOfMonth": "本月初", + "lastDayOfMonth": "本月末", + "firstDayOfLastMonth": "上月初", + "lastDayOfLastMonth": "上月末", + "firstDayOfYear": "今年初", + "lastDayOfYear": "今年末", + "firstDayOfQuarter": "本季度初", + "lastDayOfQuarter": "本季度末", + "thisWeek": "本周", + "lastWeek": "上周", + "nextWeek": "下周", + "past7Days": "过去7天", + "past30Days": "过去30天", + "thisMonth": "本月", + "lastMonth": "上月", + "thisQuarter": "本季度", + "lastQuarter": "上季度", + "thisYear": "今年", + "lastYear": "去年", + "recent3Months": "最近3个月", + "recent6Months": "最近6个月" } }, "datagrid": { diff --git a/packages/ui-vue/docs/assets/i18n/ui/zh-CHT.json b/packages/ui-vue/docs/assets/i18n/ui/zh-CHT.json index 27ad9b3f040..99b80ae74b4 100644 --- a/packages/ui-vue/docs/assets/i18n/ui/zh-CHT.json +++ b/packages/ui-vue/docs/assets/i18n/ui/zh-CHT.json @@ -3,6 +3,14 @@ "selectedStart": "已選:", "selectedEnd": "項數據" }, + "timePicker": { + "placeholder": "請選擇時間", + "time": { + "hour": "時", + "minute": "分", + "seconds": "秒" + } + }, "tabs": { "more": { "more": "更多", @@ -86,6 +94,7 @@ "yes": "是", "no": "否", "ok": "確定", + "close": "關閉", "cancel": "取消", "title": "係統提示", "errorTitle": "錯誤提示", @@ -285,6 +294,34 @@ "clearSelections": "清空", "delete": "刪除", "selected": "已選,天" + }, + "quickSelectors": { + "today": "今天", + "yesterday": "昨天", + "tomorrow": "明天", + "thisMonday": "本周壹", + "nextMonday": "下周壹", + "firstDayOfMonth": "本月初", + "lastDayOfMonth": "本月末", + "firstDayOfLastMonth": "上月初", + "lastDayOfLastMonth": "上月末", + "firstDayOfYear": "今年初", + "lastDayOfYear": "今年末", + "firstDayOfQuarter": "本季度初", + "lastDayOfQuarter": "本季度末", + "thisWeek": "本周", + "lastWeek": "上周", + "nextWeek": "下周", + "past7Days": "過去7天", + "past30Days": "過去30天", + "thisMonth": "本月", + "lastMonth": "上月", + "thisQuarter": "本季度", + "lastQuarter": "上季度", + "thisYear": "今年", + "lastYear": "去年", + "recent3Months": "最近3個月", + "recent6Months": "最近6個月" } }, "datagrid": { -- Gitee From 27acf8de8eca9b8b5d852e0204c151c2c54422b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Wed, 6 Aug 2025 17:46:53 +0800 Subject: [PATCH 14/34] =?UTF-8?q?fix:=20lookup=E7=BA=A7=E8=81=94=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=8E=92=E9=99=A4=E7=A6=81=E6=AD=A2=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E4=B8=AD=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui-vue/components/lookup/src/composition/use-treegrid.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/components/lookup/src/composition/use-treegrid.tsx b/packages/ui-vue/components/lookup/src/composition/use-treegrid.tsx index 5e0b1d7e883..a684626249a 100644 --- a/packages/ui-vue/components/lookup/src/composition/use-treegrid.tsx +++ b/packages/ui-vue/components/lookup/src/composition/use-treegrid.tsx @@ -73,7 +73,7 @@ export function useTreegrid(props: LookupProps, context: SetupContext) { const { cascadeValue } = lookupOptions; if (isEnableCascadeCheck() && cascadeValue !== CascadeEnum.Disable) { const selectedNodes = getTreeNodeWithCascadeValue(nodeId, cascadeValue, isChecked); - return selectedNodes.map(node => node.id); + return selectedNodes.filter(node => node.selectable || node.selectable === undefined).map(node => node.id); } return []; } -- Gitee From 7761e49f05d801201c25f080958c5fdcbe7ef1c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Wed, 6 Aug 2025 19:36:16 +0800 Subject: [PATCH 15/34] =?UTF-8?q?fix:=20Lookup=E8=AE=BE=E8=AE=A1=E6=97=B6?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E9=9D=A2=E6=9D=BF=E5=B7=B2=E7=9F=A5=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../converters/lookup-property.converter.ts | 4 ++++ .../src/property-config/lookup.property-config.ts | 14 ++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts b/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts index a7f6ca6b6c9..d14d9e6e983 100644 --- a/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts +++ b/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts @@ -43,6 +43,10 @@ export const lookupDefaultConverter = { if(propertyKey === 'multiSelect' && !propertyValue) { schema.editor['enableCascade'] = false; } + + if(propertyKey === 'openType' && propertyValue === 'Popup') { + schema.editor['showSelections'] = false; + } } }; diff --git a/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts b/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts index 4a8c43715d7..dcd010bb573 100644 --- a/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts +++ b/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts @@ -490,7 +490,7 @@ export class LookupPropertyConfig extends InputBaseProperty { $converter: lookupDefaultConverter, title: "显示已选记录", type: "boolean", - visible: !!editorOptions.multiSelect + visible: !!editorOptions.multiSelect && editorOptions.openType!== 'Popup' }, separator: { description: "多选分隔符", @@ -549,8 +549,8 @@ export class LookupPropertyConfig extends InputBaseProperty { showNavigatiorWidth(editorOptions: any) { const isDoubleList = this.getDisplayType(editorOptions).startsWith('NAV'); - if (isDoubleList) { - return editorOptions.showNavigation === undefined ? true : !!editorOptions.showNavigation; + if (isDoubleList && editorOptions.openType !=='Popup') { + return (editorOptions.showNavigation === undefined ? true : !!editorOptions.showNavigation); } return false; } @@ -594,7 +594,8 @@ export class LookupPropertyConfig extends InputBaseProperty { $converter: lookupDialogOptionsConverter, editor: { ...this.numberEditor, - min: this.showNavigatiorWidth(propertyData.editor) ? 520 : 300 + min: this.showNavigatiorWidth(propertyData.editor) ? 520 : 300, + max: 9999 } }, height: { @@ -604,7 +605,8 @@ export class LookupPropertyConfig extends InputBaseProperty { $converter: lookupDialogOptionsConverter, editor: { ...this.numberEditor, - min: 200 + min: 200, + max: 9999 } }, showNavigation: { @@ -827,7 +829,7 @@ export class LookupPropertyConfig extends InputBaseProperty { refreshPanelAfterChanged: true, title: "启用级联选择", type: "boolean", - visible: this.isTree(editorOptions) && !!editorOptions.multiSelect + visible: this.isTree(editorOptions) && !!editorOptions.multiSelect && editorOptions.openType!== 'Popup' }, showCascadeControl: { description: "显示级联选择控件", -- Gitee From 04bf897d0e2608c54fcf785bc33c3de3b45ade53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Thu, 7 Aug 2025 10:17:30 +0800 Subject: [PATCH 16/34] =?UTF-8?q?fix:=20timepicker=E5=A4=9A=E8=AF=AD?= =?UTF-8?q?=E5=B7=B2=E7=9F=A5=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/time-picker/src/composition/use-locales.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/ui-vue/components/time-picker/src/composition/use-locales.ts b/packages/ui-vue/components/time-picker/src/composition/use-locales.ts index ddb6d6a8c73..1a7aaf0c77a 100644 --- a/packages/ui-vue/components/time-picker/src/composition/use-locales.ts +++ b/packages/ui-vue/components/time-picker/src/composition/use-locales.ts @@ -1,5 +1,5 @@ +import { useI18n } from "vue-i18n"; import { TimePickerProps } from "../time-picker.props"; -import { LocaleService } from '@farris/ui-vue/components/locale'; export interface TimePickerLocaleData { placeholder: string; @@ -11,9 +11,10 @@ export interface TimePickerLocaleData { } export function useTimePickerLocale(props: TimePickerProps): TimePickerLocaleData { + const { t: getLocaleValue } = useI18n(); function getValue(localeKey, propertyValue?: string, defaultValue?: string): any { if (!propertyValue || propertyValue === defaultValue) { - return LocaleService.getLocaleValue(localeKey); + return getLocaleValue(localeKey); } return propertyValue || ''; } -- Gitee From c5f49e14217701c12389dfb3babbec7e8b6d32df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Thu, 7 Aug 2025 11:44:48 +0800 Subject: [PATCH 17/34] =?UTF-8?q?fix:=20=E6=95=B0=E5=AD=97=E3=80=81?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E9=80=89=E6=8B=A9=E7=BB=84=E4=BB=B6=E5=B7=B2?= =?UTF-8?q?=E7=9F=A5=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interaction-item/interaction-item.component.tsx | 4 +++- .../parameter-editor/parameter-editor.component.tsx | 12 ++++++++++-- .../parameter-editor/parameter-editor.props.ts | 3 ++- .../number-spinner/src/composition/use-locales.ts | 2 +- .../time-picker/src/composition/use-locales.ts | 2 +- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/ui-vue/components/events-editor/src/components/interaction-item/interaction-item.component.tsx b/packages/ui-vue/components/events-editor/src/components/interaction-item/interaction-item.component.tsx index 7059dd801cb..b88d8c660f6 100644 --- a/packages/ui-vue/components/events-editor/src/components/interaction-item/interaction-item.component.tsx +++ b/packages/ui-vue/components/events-editor/src/components/interaction-item/interaction-item.component.tsx @@ -173,7 +173,8 @@ export default defineComponent({ interaction.value.controller = { id: controllerName.id, label: controllerName.label, - name: controllerName.name + name: controllerName.name, + isCommon: controllerName.isCommon }; const switchOption = interaction.value.showSwitch[0]; @@ -304,6 +305,7 @@ export default defineComponent({ function renderMethodInfo() { return onParameterEditorConfirmHandler()} onChange={(event) => onParameterEditorChangeHandler(event)} diff --git a/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.component.tsx b/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.component.tsx index 74df7ad2cd6..399069ab106 100644 --- a/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.component.tsx +++ b/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.component.tsx @@ -2,7 +2,7 @@ import { SetupContext, computed, defineComponent, reactive, ref, inject } from " import { ParameterEditorProps, parameterEditorProps } from "./parameter-editor.props"; import ComboList from '@farris/ui-vue/components/combo-list'; import FEventParameter from "@farris/ui-vue/components/event-parameter"; -import { CommandItem } from "../../types"; +import { CommandItem, ControllerName } from "../../types"; import './parameter-editor.css'; import { FNotifyService as NotifyService } from "@farris/ui-vue/components/notify"; import { cloneDeep } from "lodash-es"; @@ -24,6 +24,7 @@ export default defineComponent({ setup(props: ParameterEditorProps, context: SetupContext) { const notifyService = new NotifyService(); const command = ref(cloneDeep(props.command)); + const controller = ref(props.controller); const commandItemIndex = ref(0); // 方法被废弃 const showAbandonedIcon = computed(() => command.value.id === 'abandoned'); @@ -241,6 +242,13 @@ export default defineComponent({ context.emit('viewSource', { command: command.value, event: $event }); } + const commandStyles = computed(() => { + return { + 'cursor': showAbandonedIcon.value || controller.value.isCommon ? 'default': 'pointer' + }; + }); + + /** * 显示方法名称和编辑按钮 * 显示参数列表 @@ -252,7 +260,7 @@ export default defineComponent({
      {/* 参数编辑第一行-方法名称 */}
      - {command.value.name} + {command.value.name}
      {showAbandonedIcon.value && renderAbandonedIcon()} diff --git a/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.props.ts b/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.props.ts index dbda29fb735..187618ec884 100644 --- a/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.props.ts +++ b/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.props.ts @@ -3,7 +3,8 @@ import { CommandItem } from "../../types"; export const parameterEditorProps = { command: { type: Object as PropType, default: {} }, - showParameter: { type: Boolean, default: false } + showParameter: { type: Boolean, default: false }, + controller: { type: Object, default: {} } } as Record; export type ParameterEditorProps = ExtractPropTypes; diff --git a/packages/ui-vue/components/number-spinner/src/composition/use-locales.ts b/packages/ui-vue/components/number-spinner/src/composition/use-locales.ts index 85281993eaf..d429a8360d1 100644 --- a/packages/ui-vue/components/number-spinner/src/composition/use-locales.ts +++ b/packages/ui-vue/components/number-spinner/src/composition/use-locales.ts @@ -12,7 +12,7 @@ export interface NumberLocaleData { export function useNumberLocales(props: NumberSpinnerProps): NumberLocaleData { const {t: getLocaleValue} = useI18n(); function getValue(localeKey, propertyValue?: string, defaultValue?: string): any { - if (!propertyValue || propertyValue === defaultValue) { + if (propertyValue === defaultValue) { return getLocaleValue(localeKey); } return propertyValue || ''; diff --git a/packages/ui-vue/components/time-picker/src/composition/use-locales.ts b/packages/ui-vue/components/time-picker/src/composition/use-locales.ts index 1a7aaf0c77a..05bfa61d32a 100644 --- a/packages/ui-vue/components/time-picker/src/composition/use-locales.ts +++ b/packages/ui-vue/components/time-picker/src/composition/use-locales.ts @@ -13,7 +13,7 @@ export interface TimePickerLocaleData { export function useTimePickerLocale(props: TimePickerProps): TimePickerLocaleData { const { t: getLocaleValue } = useI18n(); function getValue(localeKey, propertyValue?: string, defaultValue?: string): any { - if (!propertyValue || propertyValue === defaultValue) { + if (propertyValue === defaultValue) { return getLocaleValue(localeKey); } return propertyValue || ''; -- Gitee From ba6d64b323691c10f48c7d6dd15a20f2e312e8bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Thu, 7 Aug 2025 15:10:01 +0800 Subject: [PATCH 18/34] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96lookup=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E6=97=B6=E5=B1=9E=E6=80=A7=E9=85=8D=E7=BD=AE=E8=A7=84?= =?UTF-8?q?=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../converters/lookup-property.converter.ts | 1 + .../lookup/src/property-config/lookup.property-config.ts | 7 ++++--- .../components/modal/src/composition/modal.service.tsx | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts b/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts index d14d9e6e983..1d29c304867 100644 --- a/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts +++ b/packages/ui-vue/components/lookup/src/property-config/converters/lookup-property.converter.ts @@ -46,6 +46,7 @@ export const lookupDefaultConverter = { if(propertyKey === 'openType' && propertyValue === 'Popup') { schema.editor['showSelections'] = false; + schema.editor['enableCascade'] = false; } } }; diff --git a/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts b/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts index dcd010bb573..062e8d7f1cf 100644 --- a/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts +++ b/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts @@ -209,7 +209,8 @@ export class LookupPropertyConfig extends InputBaseProperty { type: "boolean", $converter: lookupDefaultConverter, refreshPanelAfterChanged: true, - editor: this.comboListEditor + editor: this.comboListEditor, + visible: !(editorOptions.multiSelect && editorOptions.openType === 'Popup') }, allowFreeInput: { description: "", @@ -832,9 +833,9 @@ export class LookupPropertyConfig extends InputBaseProperty { visible: this.isTree(editorOptions) && !!editorOptions.multiSelect && editorOptions.openType!== 'Popup' }, showCascadeControl: { - description: "显示级联选择控件", + description: "是否在界面中显示级联状态", $converter: lookupDefaultConverter, - title: "显示级联选择控件", + title: "显示级联状态", type: "boolean", visible: !!editorOptions.enableCascade && this.isTree(editorOptions) }, diff --git a/packages/ui-vue/components/modal/src/composition/modal.service.tsx b/packages/ui-vue/components/modal/src/composition/modal.service.tsx index cd551838aee..710d76204ba 100644 --- a/packages/ui-vue/components/modal/src/composition/modal.service.tsx +++ b/packages/ui-vue/components/modal/src/composition/modal.service.tsx @@ -1,6 +1,7 @@ import { ref, h, render, VNode, cloneVNode, shallowRef, nextTick, App, AppContext, createApp, onUnmounted, onMounted, computed } from "vue"; import { ModalFunctions, ModalOptions } from "./type"; import FModal from '../modal.component'; +import { LocaleService } from "@farris/ui-vue/components/locale"; // import FarrisPlugin from '../../../plugin'; function getContentRender(props: ModalOptions) { @@ -82,7 +83,7 @@ function createModalInstance(options: ModalOptions) { // if (FarrisPlugin && !!FarrisPlugin.install) { // app.use(FarrisPlugin); // } - + app.use(LocaleService.i18n); app.mount(container); return app; -- Gitee From 4deb045466f01bfd59eb14794f6d8c030c484bd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Fri, 8 Aug 2025 10:51:18 +0800 Subject: [PATCH 19/34] =?UTF-8?q?fix:=20=E5=A4=9A=E8=AF=AD=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E6=A1=86=E6=98=93=E7=94=A8=E6=80=A7=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/language-textbox.component.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx b/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx index d534972e7fe..16729eb90cf 100644 --- a/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx +++ b/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx @@ -47,10 +47,11 @@ export default defineComponent({ }; const languages = computed(() => { - return updateLangOrder(props.languages); + return updateLangOrder(props.languages) || []; }); function onDisplayTextChange($event: any) { + modelValue.value = modelValue.value || {}; if (modelValue.value[currentLang.value] !== $event) { modelValue.value[currentLang.value] = $event; context.emit('update:modelValue', modelValue.value); @@ -59,7 +60,7 @@ export default defineComponent({ const showPopover = computed(() => { const popoverInstance = buttonEditorRef.value?.popoverRef; - if (popoverInstance) { + if (popoverInstance && languages.value.length > 1) { return popoverInstance.shown; } return false; @@ -73,6 +74,13 @@ export default defineComponent({ context.emit('update:modelValue', modelValue.value); }; + const onBeforeOpen = () => { + if (languages.value.length <= 1) { + return false; + } + return true; + }; + return () => { return + popupMinWidth={365} + beforeOpen={onBeforeOpen}> {showPopover.value && } ; } -- Gitee From 8d1c70d92cbc484dadb6529bd9a11743b19aad58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Fri, 8 Aug 2025 10:56:53 +0800 Subject: [PATCH 20/34] =?UTF-8?q?fix:=20=E8=A1=A8=E8=BE=BE=E5=BC=8F?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=99=A8=E7=95=8C=E9=9D=A2=E5=85=83=E7=B4=A0?= =?UTF-8?q?=E5=B0=BA=E5=AF=B8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../expression-editor/src/expression-editor.component.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/components/expression-editor/src/expression-editor.component.tsx b/packages/ui-vue/components/expression-editor/src/expression-editor.component.tsx index 4e7df32f673..a4a8a99a666 100644 --- a/packages/ui-vue/components/expression-editor/src/expression-editor.component.tsx +++ b/packages/ui-vue/components/expression-editor/src/expression-editor.component.tsx @@ -135,7 +135,7 @@ export default defineComponent({ {props.showMessage &&
      提示信息: {props.showMessageType && Date: Fri, 8 Aug 2025 12:09:25 +0800 Subject: [PATCH 21/34] =?UTF-8?q?fix:=20=E6=95=B0=E5=AD=97=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E8=AE=BE=E8=AE=A1=E6=97=B6=E6=9C=80=E5=A4=A7=E6=9C=80?= =?UTF-8?q?=E5=B0=8F=E5=80=BC=E5=B1=9E=E6=80=A7=E4=BD=8D=E7=BD=AE=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../number-spinner.property-config.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ui-vue/components/number-spinner/src/property-config/number-spinner.property-config.ts b/packages/ui-vue/components/number-spinner/src/property-config/number-spinner.property-config.ts index d47b9d55945..8e5560678c2 100644 --- a/packages/ui-vue/components/number-spinner/src/property-config/number-spinner.property-config.ts +++ b/packages/ui-vue/components/number-spinner/src/property-config/number-spinner.property-config.ts @@ -37,24 +37,24 @@ export class NumberSpinnerProperty extends InputBaseProperty { precision: propertyData?.editor?.precision } }, - max: { + min: { description: "", - title: "最大值", + title: "最小值", type: "number", editor: { nullable: true, - min: propertyData?.editor?.min === undefined ? undefined : propertyData?.editor?.min, + max: propertyData?.editor?.max, precision: propertyData?.editor?.precision }, refreshPanelAfterChanged: true }, - min: { + max: { description: "", - title: "最小值", + title: "最大值", type: "number", editor: { nullable: true, - max: propertyData?.editor?.max, + min: propertyData?.editor?.min === undefined ? undefined : propertyData?.editor?.min, precision: propertyData?.editor?.precision }, refreshPanelAfterChanged: true -- Gitee From d5676b590a8ce5d0475c7ac05fd60fd163d0141d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Fri, 8 Aug 2025 16:06:08 +0800 Subject: [PATCH 22/34] =?UTF-8?q?fix:=20lookup=E7=BA=A7=E8=81=94=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E3=80=81=E4=B8=8B=E6=8B=89=E5=B8=AE=E5=8A=A9=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=B7=B2=E7=9F=A5=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/popup-container.component.tsx | 2 +- .../lookup/src/composition/use-check-props.ts | 6 +++++- .../lookup/src/composition/use-treenode.ts | 14 +++++++++----- .../ui-vue/components/lookup/src/lookup.props.ts | 2 +- .../src/property-config/lookup.property-config.ts | 6 +++--- .../lookup/src/schema/lookup.schema.json | 2 +- 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/packages/ui-vue/components/lookup/src/components/popup-container.component.tsx b/packages/ui-vue/components/lookup/src/components/popup-container.component.tsx index 2ac302383ef..1a2d84642a5 100644 --- a/packages/ui-vue/components/lookup/src/components/popup-container.component.tsx +++ b/packages/ui-vue/components/lookup/src/components/popup-container.component.tsx @@ -87,7 +87,7 @@ export default defineComponent({ return () => { return
      - {renderSearchBar()} + {/* {renderSearchBar()} */} {renderDataComponent.value()} {/*
      */}
      ; diff --git a/packages/ui-vue/components/lookup/src/composition/use-check-props.ts b/packages/ui-vue/components/lookup/src/composition/use-check-props.ts index d888fc8aab7..4c122558913 100644 --- a/packages/ui-vue/components/lookup/src/composition/use-check-props.ts +++ b/packages/ui-vue/components/lookup/src/composition/use-check-props.ts @@ -83,8 +83,12 @@ export function useCheckProps(props: LookupProps, lookupStates: LookupStates) { return lookupOptions.enableCascade && lookupOptions.multiSelect; } + function isDropdownMode() { + return props.openType === 'Popup'; + } + return { checkPaination, checkMultiSelect, checkColumnOptions, isDoubleList, getNavigationSize, isTreeList, navIsTreeList, navIsList, - isLoadAll, isPathCodeTree, isEnableCascadeCheck + isLoadAll, isPathCodeTree, isEnableCascadeCheck, isDropdownMode }; } diff --git a/packages/ui-vue/components/lookup/src/composition/use-treenode.ts b/packages/ui-vue/components/lookup/src/composition/use-treenode.ts index c45905d2b2b..f1f459c6df1 100644 --- a/packages/ui-vue/components/lookup/src/composition/use-treenode.ts +++ b/packages/ui-vue/components/lookup/src/composition/use-treenode.ts @@ -175,14 +175,18 @@ export function useTreeNode(lookupStates: LookupStates, useCheckPropsComposition lookupState.flattenTreeNodes?.push(...children); } + const { isDropdownMode } = useCheckPropsComposition; nextTick(() => { gridRef.addChildrenToNode(children, parentId); - // const itemIds = lookupStates.selectionState.value?.map(item => item[lookupOptions.idField]) ?? []; - // const selectedIds = children - // .filter(child => itemIds.includes(child.id)) - // .map(child => child.id); + if (isDropdownMode()) { + return; + } + const itemIds = lookupStates.selectionState.value?.map(item => item[lookupOptions.idField]) ?? []; + const selectedIds = children + .filter(child => itemIds.includes(child.id)) + .map(child => child.id); - // selectedIds.length && gridRef.selectItemByIds(selectedIds); + selectedIds.length && gridRef.selectItemByIds(selectedIds); }); } diff --git a/packages/ui-vue/components/lookup/src/lookup.props.ts b/packages/ui-vue/components/lookup/src/lookup.props.ts index bf3f7aa5175..9f3877e77f9 100644 --- a/packages/ui-vue/components/lookup/src/lookup.props.ts +++ b/packages/ui-vue/components/lookup/src/lookup.props.ts @@ -70,7 +70,7 @@ export const lookupProps = { onlySelectLeaf: { type: Boolean, default: false }, enableFullTree: { type: Boolean, default: true }, enableCascade: { type: Boolean, default: false }, - showCascadeControl: { type: Boolean, default: false }, + showCascadeControl: { type: Boolean, default: true }, cascadeItems: { type: Object, default: { both: true, up: true, diff --git a/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts b/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts index 062e8d7f1cf..1bc0d6c93da 100644 --- a/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts +++ b/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts @@ -837,12 +837,12 @@ export class LookupPropertyConfig extends InputBaseProperty { $converter: lookupDefaultConverter, title: "显示级联状态", type: "boolean", - visible: !!editorOptions.enableCascade && this.isTree(editorOptions) + visible: false // !!editorOptions.enableCascade && this.isTree(editorOptions) }, cascadeValue: { - description: "级联选择默认状态", + description: "缺省级联选择模式", $converter: lookupDefaultConverter, - title: "级联状态", + title: "缺省级联选择模式", type: "string", visible: !!editorOptions.enableCascade && this.isTree(editorOptions), editor: { diff --git a/packages/ui-vue/components/lookup/src/schema/lookup.schema.json b/packages/ui-vue/components/lookup/src/schema/lookup.schema.json index 1bd934c32e9..25e2977e77f 100644 --- a/packages/ui-vue/components/lookup/src/schema/lookup.schema.json +++ b/packages/ui-vue/components/lookup/src/schema/lookup.schema.json @@ -222,7 +222,7 @@ }, "showCascadeControl": { "type": "boolean", - "default": false + "default": true }, "cascadeItems": { "type": "object", -- Gitee From 9c1cb3ad0af4a2dd5dc026c9d20944608d0f8e5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Sat, 9 Aug 2025 11:11:20 +0800 Subject: [PATCH 23/34] =?UTF-8?q?fix:=20=E5=A4=9A=E8=AF=AD=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=B7=B1=E7=9F=A5=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../language-textbox/src/language-textbox.component.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx b/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx index 16729eb90cf..19e70f351d9 100644 --- a/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx +++ b/packages/ui-vue/components/language-textbox/src/language-textbox.component.tsx @@ -46,8 +46,10 @@ export default defineComponent({ return langValue; }; - const languages = computed(() => { - return updateLangOrder(props.languages) || []; + const languages = ref(); + + watch(() => props.languages, (newValue) => { + languages.value = updateLangOrder(newValue) || []; }); function onDisplayTextChange($event: any) { @@ -67,6 +69,7 @@ export default defineComponent({ }); onMounted(() => { + languages.value = updateLangOrder(props.languages) || []; }); const onUpdateModelValue = (value: any) => { @@ -75,7 +78,7 @@ export default defineComponent({ }; const onBeforeOpen = () => { - if (languages.value.length <= 1) { + if (languages.value?.length <= 1) { return false; } return true; -- Gitee From 57d5847f43487bf0c025f633fb3ae24543183d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Mon, 11 Aug 2025 11:36:31 +0800 Subject: [PATCH 24/34] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dlookup=E5=B7=B1?= =?UTF-8?q?=E7=9F=A5=E6=95=B0=E6=8D=AE=E5=8A=A0=E8=BD=BD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parameter-editor/parameter-editor.component.tsx | 2 +- .../components/lookup/src/composition/use-datagrid.tsx | 7 +++---- packages/ui-vue/farris.config.mjs | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.component.tsx b/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.component.tsx index 399069ab106..aebf9705de7 100644 --- a/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.component.tsx +++ b/packages/ui-vue/components/events-editor/src/components/parameter-editor/parameter-editor.component.tsx @@ -244,7 +244,7 @@ export default defineComponent({ const commandStyles = computed(() => { return { - 'cursor': showAbandonedIcon.value || controller.value.isCommon ? 'default': 'pointer' + 'cursor': showAbandonedIcon.value || controller.value.isCommon || controller.value?.label.indexOf(useFormSchema?.getModule().code) === -1 ? 'default': 'pointer' }; }); diff --git a/packages/ui-vue/components/lookup/src/composition/use-datagrid.tsx b/packages/ui-vue/components/lookup/src/composition/use-datagrid.tsx index df318678c27..faf8e50ddbd 100644 --- a/packages/ui-vue/components/lookup/src/composition/use-datagrid.tsx +++ b/packages/ui-vue/components/lookup/src/composition/use-datagrid.tsx @@ -65,13 +65,12 @@ export function useDatagrid(props: LookupProps, context: SetupContext, navigatio const relation = computed(() => { if (!navSelectedItems.value?.length) { return null; } - if (!navIsTreeList()) { return null; } const nodes = navSelectedItems.value; - const filterParams = { relationFilter: getRelationFilter(nodes) }; - if (!includeChilds.value) { + const filterParams = { relationFilter: getRelationFilter(nodes) }; + if (!navIsTreeList() || !includeChilds.value) { return filterParams; } - + const { treeInfo } = navigationState; const action = { action: 'navAllChildren', ...filterParams}; return isPathCodeTree(treeInfo)? Object.assign(action, { navNodePathCode: getPathCode(nodes[0].data, treeInfo) }): action; diff --git a/packages/ui-vue/farris.config.mjs b/packages/ui-vue/farris.config.mjs index b844000049d..94f41a4fd54 100644 --- a/packages/ui-vue/farris.config.mjs +++ b/packages/ui-vue/farris.config.mjs @@ -23,7 +23,7 @@ export default { } }, externalDependencies: true, - minify: 'terser', + minify: false, // 'terser', alias: [ { find: '@', replacement: fileURLToPath(new URL('./', import.meta.url)) }, { find: '@/components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, -- Gitee From f8b270077750cc0f2fc1821890436ea8d597cbdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Mon, 11 Aug 2025 11:39:55 +0800 Subject: [PATCH 25/34] =?UTF-8?q?chore:=20ui=E6=89=93=E5=8C=85=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/ui-vue/farris.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/farris.config.mjs b/packages/ui-vue/farris.config.mjs index 94f41a4fd54..b844000049d 100644 --- a/packages/ui-vue/farris.config.mjs +++ b/packages/ui-vue/farris.config.mjs @@ -23,7 +23,7 @@ export default { } }, externalDependencies: true, - minify: false, // 'terser', + minify: 'terser', alias: [ { find: '@', replacement: fileURLToPath(new URL('./', import.meta.url)) }, { find: '@/components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, -- Gitee From 86a7767fb625c870c2429c5eb0bc62c998320a59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Tue, 12 Aug 2025 15:58:41 +0800 Subject: [PATCH 26/34] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E6=97=B6=E7=BB=84=E4=BB=B6ID=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui-vue/components/button-edit/src/button-edit.props.ts | 2 +- .../button-edit/src/components/text-edit.component.tsx | 2 +- .../components/date-picker/src/date-picker.component.tsx | 1 + .../ui-vue/components/date-picker/src/date-picker.props.ts | 1 + .../src/property-config/date-picker.property-config.ts | 3 ++- 5 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/ui-vue/components/button-edit/src/button-edit.props.ts b/packages/ui-vue/components/button-edit/src/button-edit.props.ts index 5c63aabe534..c2fc8e1c652 100644 --- a/packages/ui-vue/components/button-edit/src/button-edit.props.ts +++ b/packages/ui-vue/components/button-edit/src/button-edit.props.ts @@ -30,7 +30,7 @@ export const buttonEditProps = { /** * 组件标识 */ - id: String, + id: { type: String, default: '' }, /** * 扩展按钮显示内容,这是一段现在扩展按钮中的html标签 */ diff --git a/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx b/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx index cce87a19775..ab4ecdb7432 100644 --- a/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx +++ b/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx @@ -41,7 +41,7 @@ export default function ( return () => { return : Date: Tue, 12 Aug 2025 17:50:02 +0800 Subject: [PATCH 27/34] =?UTF-8?q?fix:=20=E6=95=B0=E5=AD=97=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E8=AE=BE=E8=AE=A1=E6=97=B6=E5=BC=80=E6=94=BE=E6=96=B0?= =?UTF-8?q?=E7=89=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/cli/src/commands/build-lib.ts | 6 ++++- packages/cli/src/index.ts | 1 + .../number-spinner.property-config.ts | 25 +++++++++++++++++++ packages/ui-vue/package.json | 1 + 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/commands/build-lib.ts b/packages/cli/src/commands/build-lib.ts index 113a11f3c88..38f8810f6c3 100644 --- a/packages/cli/src/commands/build-lib.ts +++ b/packages/cli/src/commands/build-lib.ts @@ -9,6 +9,7 @@ export type BuildLibOptions = BuildCommonOptions & { dts?: boolean; emitPackage?: boolean; format: 'es' | 'umd' | 'systemjs'; + develop?: boolean; }; export async function buildLib(options: BuildLibOptions) { @@ -19,7 +20,10 @@ export async function buildLib(options: BuildLibOptions) { plugins: [ dts && generateTypes("./components", "./package/types"), emitPackage && createPackageJson() - ] + ], + build: { + minify: options.develop? false: 'terser' + } }; const spinner = ora(`build lib begin`).start(); diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 226e342ce5d..a79df7825a4 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -25,6 +25,7 @@ program .option('-f --format [format]', 'lib format') .option('-d --dts', 'dts') .option('-ep --emitPackage', 'createPackage') + .option('-dev --develop [develop]','develop') .action(async (options) => { process.env.BUILD_TYPE = 'lib'; const { buildLib } = await import('./commands/build-lib.js'); diff --git a/packages/ui-vue/components/number-spinner/src/property-config/number-spinner.property-config.ts b/packages/ui-vue/components/number-spinner/src/property-config/number-spinner.property-config.ts index 8e5560678c2..df23253fc3e 100644 --- a/packages/ui-vue/components/number-spinner/src/property-config/number-spinner.property-config.ts +++ b/packages/ui-vue/components/number-spinner/src/property-config/number-spinner.property-config.ts @@ -80,6 +80,31 @@ export class NumberSpinnerProperty extends InputBaseProperty { } ] } + }, + bigNumber: { + description: "", + title: "启用大数字", + type: "boolean", + }, + showZero: { + description: "", + title: "显示0值", + type: "boolean", + }, + nullable: { + description: "允许设置为 null", + title: "允许为空", + type: "boolean", + }, + useThousands: { + description: "", + title: "启用千分位", + type: "boolean", + }, + showButton: { + description: "", + title: "显示加减按钮", + type: "boolean", } }, function (changeObject: any, propertyData: any, parameters: any) { if (!changeObject) { diff --git a/packages/ui-vue/package.json b/packages/ui-vue/package.json index b1a2c8822cf..cf58b46e8e0 100644 --- a/packages/ui-vue/package.json +++ b/packages/ui-vue/package.json @@ -33,6 +33,7 @@ "docs:build": "vitepress build docs && cp -r ./docs/components/list-view/assets ./docs/.vitepress/dist/components/list-view/ && cp ./docs/assets/farris*.png ./docs/.vitepress/dist/assets", "docs:serve": "vitepress serve docs", "build:system": "farris-cli build-lib -ep", + "build:dev": "farris-cli build-lib -ep -dev", "extract:i18n": "farris-cli extract-i18n" }, "dependencies": { -- Gitee From 84b531966e8295891ad35a281699d2217e7a8c66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Wed, 13 Aug 2025 13:41:08 +0800 Subject: [PATCH 28/34] =?UTF-8?q?fix:=20=E6=97=A5=E6=9C=9F=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E8=AE=BE=E8=AE=A1=E6=97=B6=E5=BC=80=E6=94=BE=E5=B7=B2?= =?UTF-8?q?=E7=9F=A5=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/composition/use-locales.ts | 2 +- .../date-picker.property-config.ts | 53 ++++++++++++++++++- .../src/schema/date-picker.schema.json | 7 ++- packages/ui-vue/farris.config.mjs | 2 +- 4 files changed, 60 insertions(+), 4 deletions(-) diff --git a/packages/ui-vue/components/date-picker/src/composition/use-locales.ts b/packages/ui-vue/components/date-picker/src/composition/use-locales.ts index 9bb9117568b..62572270054 100644 --- a/packages/ui-vue/components/date-picker/src/composition/use-locales.ts +++ b/packages/ui-vue/components/date-picker/src/composition/use-locales.ts @@ -35,7 +35,7 @@ export function useDatePickerLocale(props: DatePickerProps): DatePickerLocale { } - const weekTitle = getValue('datepicker.weekTitle', props.weekTitle, '周'); + const weekTitle = getValue('datepicker.weekText', props.weekTitle, '周'); const weekDayLabels = { "Sun": getValue('datepicker.dayLabels.Sun'), "Mon": getValue('datepicker.dayLabels.Mon'), diff --git a/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts b/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts index 1fcc6b93bf3..8316a3ff25c 100644 --- a/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts +++ b/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts @@ -7,10 +7,61 @@ export class DatePickerProperty extends InputBaseProperty { constructor(componentId: string, designerHostService: any) { super(componentId, designerHostService); } + + private getDatePickerModes(dataType: string) { + if (dataType === 'Date' || dataType === 'DateTime') { + return [ + { label: '全部', value: 'day' } + ]; + } + return [ + { label: '全部', value: 'day' }, + { label: '显示年月', value:'month' }, + { label: '仅显示年', value: 'year' }, + ]; + } + + getEditorProperties(propertyData: any) { const displayFormatOptions = this.getDateFormatOptions(propertyData?.editor); const valueFormatOptions = this.getValueFormatOptions(); + const bindingFieldType = this.designViewModelField.type; + const selectModes = this.getDatePickerModes(bindingFieldType); return this.getComponentConfig(propertyData, { type: "date-picker" }, { + selectMode:{ + description: "", + title: "显示类型", + type: "string", + refreshPanelAfterChanged: true, + editor: { + type: 'combo-list', + idField: 'value', + textField: 'label', + valueField: 'value', + data: selectModes + } + }, + showWeekNumber: { + description: "", + title: "显示第几周", + type: "boolean", + visible: propertyData?.editor?.selectMode === 'day' + }, + firstDayOfTheWeek: { + description: "", + title: "每周起始日", + type: "string", + editor: { + type: 'combo-list', + idField: 'value', + valueField: 'value', + textField: 'label', + data: [ + { label: '星期日', value: 'Sun' }, + { label: '星期一', value: 'Mon' }, + ] + } + }, showTime: { description: "", title: "启用时间选择", @@ -69,7 +120,7 @@ export class DatePickerProperty extends InputBaseProperty { description: "", title: "启用快速选择", type: "boolean", - visible: false + visible: true } }, this.setEditorPropertyRelates); } diff --git a/packages/ui-vue/components/date-picker/src/schema/date-picker.schema.json b/packages/ui-vue/components/date-picker/src/schema/date-picker.schema.json index f41c8f81842..5f76932787d 100644 --- a/packages/ui-vue/components/date-picker/src/schema/date-picker.schema.json +++ b/packages/ui-vue/components/date-picker/src/schema/date-picker.schema.json @@ -99,7 +99,7 @@ "type": "boolean", "default": false }, - "firstDayOfWeek": { + "firstDayOfTheWeek": { "description": "", "type": "string", "default": "Sun" @@ -133,6 +133,11 @@ "description": "", "type": "boolean", "default": false + }, + "showWeekNumber":{ + "description": "", + "type": "boolean", + "default": false } }, "required": [ diff --git a/packages/ui-vue/farris.config.mjs b/packages/ui-vue/farris.config.mjs index b844000049d..98742cb0ee6 100644 --- a/packages/ui-vue/farris.config.mjs +++ b/packages/ui-vue/farris.config.mjs @@ -9,7 +9,7 @@ export default { lib: { entry: fileURLToPath(new URL('./components/index.ts', import.meta.url)), name: "farris-ui-vue", - fileName: "ui-vue", + fileName: (format) => `ui-vue.js`, formats: ['systemjs'], }, systemjs: true, -- Gitee From a38fdde3608a0b4552fbac8fafded3106f3b84c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Wed, 13 Aug 2025 15:22:07 +0800 Subject: [PATCH 29/34] =?UTF-8?q?fix:=20=E6=97=A5=E6=9C=9F=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E8=AE=BE=E8=AE=A1=E6=97=B6=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E6=8C=89=E6=98=BE=E7=A4=BA=E7=B1=BB=E5=9E=8B=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../date-picker.property-config.ts | 99 ++++++++++++++----- 1 file changed, 75 insertions(+), 24 deletions(-) diff --git a/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts b/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts index 8316a3ff25c..53a46914381 100644 --- a/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts +++ b/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts @@ -2,6 +2,29 @@ import { FormSchemaEntityFieldTypeName } from "@farris/ui-vue/components/common" import { FormPropertyChangeObject, InputBaseProperty } from "@farris/ui-vue/components/property-panel"; import { DATE_FORMATS } from "./date-format"; + +const DAY_FORMATS = [ + { id: 'yyyy-MM-dd', name: 'yyyy-MM-dd' }, + { id: 'yyyy/MM/dd', name: 'yyyy/MM/dd' }, + { id: 'MM/dd/yyyy', name: 'MM/dd/yyyy' }, +]; + +const DAY_TIME_FORMATS = [ + { id: 'yyyy-MM-dd HH:mm:ss', name: 'yyyy-MM-dd HH:mm:ss' }, + { id: 'yyyy/MM/dd HH:mm:ss', name: 'yyyy/MM/dd HH:mm:ss' }, +]; + +const MONTH_FORMATS = [ + { id: 'yyyy-MM', name: 'yyyy-MM' }, + { id: 'yyyy/MM', name: 'yyyy/MM' }, + { id: 'yyyyMM', name: 'yyyyMM' }, +]; + +const YEAR_FORMATS = [ + { id: 'yyyy', name: 'yyyy' }, +]; + +const { timeFormats, yMdFormats, yMFormats, mdFormats, yFormats } = DATE_FORMATS(); export class DatePickerProperty extends InputBaseProperty { constructor(componentId: string, designerHostService: any) { @@ -24,8 +47,8 @@ export class DatePickerProperty extends InputBaseProperty { getEditorProperties(propertyData: any) { const displayFormatOptions = this.getDateFormatOptions(propertyData?.editor); - const valueFormatOptions = this.getValueFormatOptions(); - const bindingFieldType = this.designViewModelField.type; + const valueFormatOptions = this.getValueFormatOptions(propertyData?.editor); + const bindingFieldType = this.designViewModelField.type.name; const selectModes = this.getDatePickerModes(bindingFieldType); return this.getComponentConfig(propertyData, { type: "date-picker" }, { selectMode:{ @@ -60,14 +83,16 @@ export class DatePickerProperty extends InputBaseProperty { { label: '星期日', value: 'Sun' }, { label: '星期一', value: 'Mon' }, ] - } + }, + visible: propertyData?.editor?.selectMode === 'day' }, showTime: { description: "", title: "启用时间选择", type: "boolean", readonly: propertyData?.editor?.fieldType === 'Date', - refreshPanelAfterChanged: true + refreshPanelAfterChanged: true, + visible: propertyData?.editor?.selectMode === 'day' }, displayFormat: { description: "", @@ -120,7 +145,7 @@ export class DatePickerProperty extends InputBaseProperty { description: "", title: "启用快速选择", type: "boolean", - visible: true + visible: propertyData?.editor?.selectMode === 'day' } }, this.setEditorPropertyRelates); } @@ -152,33 +177,59 @@ export class DatePickerProperty extends InputBaseProperty { } break; } + case 'selectMode': { + if (changeObject.propertyValue !== 'day') { + propertyData.editor.showWeekNumber = false; + propertyData.editor.showTime = false; + propertyData.editor.enableQuickSelect = false; + } + break; + } } } private getDateFormatOptions(editorData: any) { + const selectMode = editorData?.selectMode || 'day'; let formats: any[] = []; - const { timeFormats, yMdFormats, yMFormats, mdFormats, yFormats } = DATE_FORMATS(); - - if (editorData.showTime) { - formats = formats.concat(timeFormats); + + switch (selectMode) { + case 'day': { + const dayFormats: any[] = []; + if (editorData.showTime) { + dayFormats.push(...timeFormats); + } + dayFormats.push(...yMdFormats, ...yMFormats, ...yFormats, ...mdFormats); + formats = dayFormats; + break; + } + case'month': { + formats = [...yMFormats, ...yFormats]; + break; + } + case 'year': { + formats = [...yFormats]; + break; + } } - formats = formats.concat(yMdFormats); - formats = formats.concat(yMFormats); - formats = formats.concat(yFormats); - formats = formats.concat(mdFormats); - return formats; } - private getValueFormatOptions() { - return [ - { id: 'yyyy-MM-dd', name: 'yyyy-MM-dd' }, - { id: 'yyyy/MM/dd', name: 'yyyy/MM/dd' }, - { id: 'MM/dd/yyyy', name: 'MM/dd/yyyy' }, - { id: 'yyyy-MM-dd HH:mm:ss', name: 'yyyy-MM-dd HH:mm:ss' }, - { id: 'yyyy/MM/dd HH:mm:ss', name: 'yyyy/MM/dd HH:mm:ss' }, - { id: 'yyyyMM', name: 'yyyyMM' }, - { id: 'yyyy', name: 'yyyy' } - ]; + private getValueFormatOptions(editorData: any) { + const selectMode = editorData?.selectMode || 'day'; + switch (selectMode) { + case 'day': { + const format = [...DAY_FORMATS]; + if (editorData.showTime) { + format.push(...DAY_TIME_FORMATS); + } + return format; + } + case 'month': + return MONTH_FORMATS; + case 'year': + return YEAR_FORMATS; + default: + return []; + } } /** * 切换绑定属性 -- Gitee From bd595a414575778d7bd21bc0fedfee2e486e66c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Thu, 14 Aug 2025 10:11:54 +0800 Subject: [PATCH 30/34] =?UTF-8?q?feature:=20=E6=97=A5=E6=9C=9F=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E8=AE=BE=E8=AE=A1=E6=97=B6=E6=94=AF=E6=8C=81=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E9=BB=98=E8=AE=A4=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../date-picker.property-config.ts | 20 +++++++++-- packages/ui-vue/farris.config-dev.mjs | 36 +++++++++++++++++++ packages/ui-vue/farris.config.mjs | 2 +- packages/ui-vue/package.json | 2 +- 4 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 packages/ui-vue/farris.config-dev.mjs diff --git a/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts b/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts index 53a46914381..5b8f4b3514f 100644 --- a/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts +++ b/packages/ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts @@ -50,6 +50,11 @@ export class DatePickerProperty extends InputBaseProperty { const valueFormatOptions = this.getValueFormatOptions(propertyData?.editor); const bindingFieldType = this.designViewModelField.type.name; const selectModes = this.getDatePickerModes(bindingFieldType); + + if (!propertyData?.editor?.selectMode) { + propertyData.editor.selectMode = 'day'; + } + return this.getComponentConfig(propertyData, { type: "date-picker" }, { selectMode:{ description: "", @@ -182,13 +187,24 @@ export class DatePickerProperty extends InputBaseProperty { propertyData.editor.showWeekNumber = false; propertyData.editor.showTime = false; propertyData.editor.enableQuickSelect = false; + + if (changeObject.propertyValue === 'month') { + propertyData.editor.displayFormat = 'yyyy-MM'; + propertyData.editor.valueFormat = 'yyyy-MM'; + } else { + propertyData.editor.displayFormat = 'yyyy'; + propertyData.editor.valueFormat = 'yyyy'; + } + } else { + propertyData.editor.displayFormat = 'yyyy-MM-dd'; + propertyData.editor.valueFormat = 'yyyy-MM-dd'; } break; } } } private getDateFormatOptions(editorData: any) { - const selectMode = editorData?.selectMode || 'day'; + const selectMode = editorData.selectMode || 'day'; let formats: any[] = []; switch (selectMode) { @@ -214,7 +230,7 @@ export class DatePickerProperty extends InputBaseProperty { } private getValueFormatOptions(editorData: any) { - const selectMode = editorData?.selectMode || 'day'; + const selectMode = editorData.selectMode || 'day'; switch (selectMode) { case 'day': { const format = [...DAY_FORMATS]; diff --git a/packages/ui-vue/farris.config-dev.mjs b/packages/ui-vue/farris.config-dev.mjs new file mode 100644 index 00000000000..6385aa25ba3 --- /dev/null +++ b/packages/ui-vue/farris.config-dev.mjs @@ -0,0 +1,36 @@ +import { fileURLToPath, URL } from 'node:url'; +import banner from 'vite-plugin-banner'; + +import { formatDate } from 'date-fns'; + +const currentTime = () => formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss'); + +export default { + lib: { + entry: fileURLToPath(new URL('./components/index.ts', import.meta.url)), + name: "farris-ui-vue", + fileName: () => "ui-vue.js", + formats: ['systemjs'], + }, + systemjs: true, + outDir: fileURLToPath(new URL('./dist', import.meta.url)), + externals: { + include: [], + filter: (externals) => { + return (id) => { + return externals.find((item) => item && id.indexOf(item) === 0); + }; + } + }, + externalDependencies: true, + minify: false, + alias: [ + { find: '@', replacement: fileURLToPath(new URL('./', import.meta.url)) }, + { find: '@/components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, + { find: '@farris/ui-vue/components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, + { find: '@farris/mobile-ui-vue', replacement: fileURLToPath(new URL('./components', import.meta.url)) } + ], + plugins: [ + banner('Last Update Time: ' + currentTime()) + ] +}; diff --git a/packages/ui-vue/farris.config.mjs b/packages/ui-vue/farris.config.mjs index 98742cb0ee6..26a0ae57cbe 100644 --- a/packages/ui-vue/farris.config.mjs +++ b/packages/ui-vue/farris.config.mjs @@ -9,7 +9,7 @@ export default { lib: { entry: fileURLToPath(new URL('./components/index.ts', import.meta.url)), name: "farris-ui-vue", - fileName: (format) => `ui-vue.js`, + fileName: "ui-vue.js", formats: ['systemjs'], }, systemjs: true, diff --git a/packages/ui-vue/package.json b/packages/ui-vue/package.json index cf58b46e8e0..d73f7abc4d8 100644 --- a/packages/ui-vue/package.json +++ b/packages/ui-vue/package.json @@ -33,7 +33,7 @@ "docs:build": "vitepress build docs && cp -r ./docs/components/list-view/assets ./docs/.vitepress/dist/components/list-view/ && cp ./docs/assets/farris*.png ./docs/.vitepress/dist/assets", "docs:serve": "vitepress serve docs", "build:system": "farris-cli build-lib -ep", - "build:dev": "farris-cli build-lib -ep -dev", + "build:dev": "farris-cli build-lib -ep -c ./farris.config-dev.mjs", "extract:i18n": "farris-cli extract-i18n" }, "dependencies": { -- Gitee From a136a28d924f13391b9899504b92320c98e3d55b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Thu, 14 Aug 2025 10:31:07 +0800 Subject: [PATCH 31/34] =?UTF-8?q?revert:=20cli=E4=BB=A3=E7=A0=81=E8=BF=98?= =?UTF-8?q?=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/cli/src/commands/build-lib.ts | 6 +----- packages/cli/src/index.ts | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/cli/src/commands/build-lib.ts b/packages/cli/src/commands/build-lib.ts index 38f8810f6c3..113a11f3c88 100644 --- a/packages/cli/src/commands/build-lib.ts +++ b/packages/cli/src/commands/build-lib.ts @@ -9,7 +9,6 @@ export type BuildLibOptions = BuildCommonOptions & { dts?: boolean; emitPackage?: boolean; format: 'es' | 'umd' | 'systemjs'; - develop?: boolean; }; export async function buildLib(options: BuildLibOptions) { @@ -20,10 +19,7 @@ export async function buildLib(options: BuildLibOptions) { plugins: [ dts && generateTypes("./components", "./package/types"), emitPackage && createPackageJson() - ], - build: { - minify: options.develop? false: 'terser' - } + ] }; const spinner = ora(`build lib begin`).start(); diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index a79df7825a4..226e342ce5d 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -25,7 +25,6 @@ program .option('-f --format [format]', 'lib format') .option('-d --dts', 'dts') .option('-ep --emitPackage', 'createPackage') - .option('-dev --develop [develop]','develop') .action(async (options) => { process.env.BUILD_TYPE = 'lib'; const { buildLib } = await import('./commands/build-lib.js'); -- Gitee From 763a24d7244dfe6bcfd3f7804d1389d630ee4a9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Thu, 14 Aug 2025 16:19:53 +0800 Subject: [PATCH 32/34] =?UTF-8?q?feature:=20lookup=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=BB=BB=E6=84=8F=E8=BE=93=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lookup/src/property-config/lookup.property-config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts b/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts index d380f9e9e46..b25a4d2365d 100644 --- a/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts +++ b/packages/ui-vue/components/lookup/src/property-config/lookup.property-config.ts @@ -218,7 +218,7 @@ export class LookupPropertyConfig extends InputBaseProperty { type: "boolean", $converter: lookupDefaultConverter, editor: this.freeInputEditor, - visible: false // !!editorOptions.editable + visible: !!editorOptions.editable && this.isSimpleStringField() }, enableClear: { title: "启用清除按钮", -- Gitee From 98a737d11514adbdd0f74ffe946ebb32a78ec6f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Thu, 14 Aug 2025 16:23:08 +0800 Subject: [PATCH 33/34] fix: build config reset --- packages/ui-vue/farris.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/farris.config.mjs b/packages/ui-vue/farris.config.mjs index 26a0ae57cbe..b844000049d 100644 --- a/packages/ui-vue/farris.config.mjs +++ b/packages/ui-vue/farris.config.mjs @@ -9,7 +9,7 @@ export default { lib: { entry: fileURLToPath(new URL('./components/index.ts', import.meta.url)), name: "farris-ui-vue", - fileName: "ui-vue.js", + fileName: "ui-vue", formats: ['systemjs'], }, systemjs: true, -- Gitee From b6d439a1dc261b0b95b0674c56c300acfefd37b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=A7=80=E6=89=8D?= Date: Thu, 14 Aug 2025 16:37:39 +0800 Subject: [PATCH 34/34] =?UTF-8?q?feature:=20ui-vue=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=9D=9E=E5=8E=8B=E7=BC=A9=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/ui-vue/farris.config-dev.mjs | 34 +++------------------------ 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/packages/ui-vue/farris.config-dev.mjs b/packages/ui-vue/farris.config-dev.mjs index 6385aa25ba3..e6479973e75 100644 --- a/packages/ui-vue/farris.config-dev.mjs +++ b/packages/ui-vue/farris.config-dev.mjs @@ -1,36 +1,8 @@ -import { fileURLToPath, URL } from 'node:url'; -import banner from 'vite-plugin-banner'; +import farrisConfig from './farris.config.mjs'; -import { formatDate } from 'date-fns'; - -const currentTime = () => formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss'); +farrisConfig.lib.fileName = () => "ui-vue.js"; export default { - lib: { - entry: fileURLToPath(new URL('./components/index.ts', import.meta.url)), - name: "farris-ui-vue", - fileName: () => "ui-vue.js", - formats: ['systemjs'], - }, - systemjs: true, - outDir: fileURLToPath(new URL('./dist', import.meta.url)), - externals: { - include: [], - filter: (externals) => { - return (id) => { - return externals.find((item) => item && id.indexOf(item) === 0); - }; - } - }, - externalDependencies: true, + ...farrisConfig, minify: false, - alias: [ - { find: '@', replacement: fileURLToPath(new URL('./', import.meta.url)) }, - { find: '@/components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, - { find: '@farris/ui-vue/components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, - { find: '@farris/mobile-ui-vue', replacement: fileURLToPath(new URL('./components', import.meta.url)) } - ], - plugins: [ - banner('Last Update Time: ' + currentTime()) - ] }; -- Gitee