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 c8bf1eaa8c9c951304d7a5375984def4a9f186c4..6e22859b43f1935869810d689f79e201f48a4b82 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 @@ -107,24 +107,21 @@ export default defineComponent({ updateCurrentClassCode(); } - function customStyleFilePath() { - const {code:formCode, projectName} = formSchema.module; - const basePath = getUrlParam('id').split('/').filter(name => name); - const app = basePath[0]; - const su = basePath[1]; - return `${app}/${su}/web/${projectName}/${formCode}/css/${formCode}.css`; - } - - function resetCssFilePath() { - formSchema.module.customStyleFile = customStyleFilePath(); - cssFilePath.value = formSchema.module.customStyleFile; - } + // function getApplication() { + // const basePath = getUrlParam('id').split('/').filter(name => name); + // const app = basePath[0]; + // const su = basePath[1]; + // return {app, su}; + // } + + // function resetCssFilePath() { + // const { app, su} = getApplication(); + // formSchema.module.application = app; + // formSchema.module.serviceUnit = su; + // } onBeforeMount(() => { updateCurrentClassCode(); - if (!formSchema.module.customStyleFile) { - resetCssFilePath(); - } }); const updateWheelZoom = (isEnabled) => { @@ -173,11 +170,11 @@ export default defineComponent({ -
+ {/*
部署路径: -
+
*/} ); }; diff --git a/packages/designer/src/components/types/metadata.ts b/packages/designer/src/components/types/metadata.ts index 5f4167c391bd6822910747d8494b49274988ec17..d8489fe837b6f8e7c03f20807229d2521877a935 100644 --- a/packages/designer/src/components/types/metadata.ts +++ b/packages/designer/src/components/types/metadata.ts @@ -86,8 +86,6 @@ export interface FormMetaDataModule { // 自定义样式 customClass: any; - customStyleFile?: string; - // 外部模块声明 extraImports: Array<{ name: string; path: string }>; diff --git a/packages/ui-vue/components/locale/src/lib/locales/en-us/lookup.ts b/packages/ui-vue/components/locale/src/lib/locales/en-us/lookup.ts index 81dc65c234297d422d0464d241132be23609764a..3c6b0855b0baf844bfd79b3fae9590245778b9c0 100644 --- a/packages/ui-vue/components/locale/src/lib/locales/en-us/lookup.ts +++ b/packages/ui-vue/components/locale/src/lib/locales/en-us/lookup.ts @@ -18,7 +18,9 @@ export const LOOKUP_LOCALE = { includechildren: 'Include Children', favoriteInfo: { addFav: 'Collection Success.', - cancelFav: 'Unfavorite Successfully. ' + cancelFav: 'Unfavorite Successfully. ', + addFavTitle: 'Add to Favorite', + cancelFavTitle: 'Cancel Favorite' }, getAllChilds: 'Get All Children', contextMenu: { @@ -43,7 +45,7 @@ export const LOOKUP_LOCALE = { }, configError: 'The help display column is not configured. Please check whether the help data source is configured correctly.', selectedInfo: { - total: 'Selected Items {0}', + total: 'Selected Items {0}', clear: 'Cancel Selected', remove: 'Delete ({0})', confirm: 'Are you sure you want to cancel all selected records?' diff --git a/packages/ui-vue/components/locale/src/lib/locales/zh-CHT/lookup.ts b/packages/ui-vue/components/locale/src/lib/locales/zh-CHT/lookup.ts index f0cb53cb54a5e8824ef04bf781e8d10552590ec7..34bf1f7c839b97f6d4f127f1980c2b16de2203bb 100644 --- a/packages/ui-vue/components/locale/src/lib/locales/zh-CHT/lookup.ts +++ b/packages/ui-vue/components/locale/src/lib/locales/zh-CHT/lookup.ts @@ -17,8 +17,10 @@ export const LOOKUP_LOCALE_ZHCHT = { }, includechildren: '包含下級', favoriteInfo: { - addFav: '收藏成功。', - cancelFav: '取消收藏成功。 ' + addFav: '已添加到收藏夾。', + cancelFav: '已從收藏夾中移除。', + addFavTitle: '收藏', + cancelFavTitle: '取消收藏' }, getAllChilds: '獲取所有子級數據', contextMenu: { @@ -43,7 +45,7 @@ export const LOOKUP_LOCALE_ZHCHT = { }, configError: '幫助顯示列未配置,請檢查是否已正確配置幫助數據源!', selectedInfo: { - total: '已選 {0} 條', + total: '已選 {0} 條', clear: '取消已選', remove: '移除 ({0})', confirm: '您確認要取消所有選中記錄嗎?' diff --git a/packages/ui-vue/components/locale/src/lib/locales/zh-cn/lookup.ts b/packages/ui-vue/components/locale/src/lib/locales/zh-cn/lookup.ts index cfb72b8ef3fc172bd26767b61cf30e75f9a26404..e5acc34cbf79e1667b9cd8a2338b4bc1188ab895 100644 --- a/packages/ui-vue/components/locale/src/lib/locales/zh-cn/lookup.ts +++ b/packages/ui-vue/components/locale/src/lib/locales/zh-cn/lookup.ts @@ -17,8 +17,10 @@ export const LOOKUP_LOCALE_ZHCHS = { }, includechildren:'包含下级', favoriteInfo: { - addFav: '收藏成功。', - cancelFav: '取消收藏成功。 ' + addFav: '已添加到收藏夹。', + cancelFav: '已从收藏夹中移除。', + addFavTitle: '收藏', + cancelFavTitle: '取消收藏' }, getAllChilds: '获取所有子级数据', contextMenu: { @@ -43,7 +45,7 @@ export const LOOKUP_LOCALE_ZHCHS = { }, configError: '帮助显示列未配置,请检查是否已正确配置帮助数据源! ', selectedInfo: { - total: '已选 {0} 条', + total: '已选 {0} 条', clear: '取消已选', remove: '移除 ({0})', confirm: '您确认要取消所有选中记录吗?' diff --git a/packages/ui-vue/components/lookup/src/components/include-child-checkbox/include-child-checkbox.component.tsx b/packages/ui-vue/components/lookup/src/components/include-child-checkbox/include-child-checkbox.component.tsx index 79efc440b9ac53e0ef91d14965dce04f87381910..b4fe2f3203200fcd0a12bd9aa81ac4c30c42ce3d 100644 --- a/packages/ui-vue/components/lookup/src/components/include-child-checkbox/include-child-checkbox.component.tsx +++ b/packages/ui-vue/components/lookup/src/components/include-child-checkbox/include-child-checkbox.component.tsx @@ -5,6 +5,10 @@ export default defineComponent({ modelValue: { type: Boolean, default: false + }, + label: { + type: String, + default: '包含下级' } }, emits: ['update:modelValue'], @@ -21,7 +25,7 @@ export default defineComponent({ return () => { return
- +
; }; } diff --git a/packages/ui-vue/components/lookup/src/components/lookup-container.component.tsx b/packages/ui-vue/components/lookup/src/components/lookup-container.component.tsx index fd28f7df3f710319092175b3be26730a0b39fadf..be4158d2c422cd638119e17800d1b9bdd029c056 100644 --- a/packages/ui-vue/components/lookup/src/components/lookup-container.component.tsx +++ b/packages/ui-vue/components/lookup/src/components/lookup-container.component.tsx @@ -11,6 +11,7 @@ import { useCheckProps } from "../composition/use-check-props"; import { useNavigation } from "../composition/use-navigation"; import { LOOKUP_HTTP_COMPOSITION, UseHttpComposition } from "../composition/use-http"; import { DefaultDialogTitle, LOOKUP_ACTIVE_TAB, LookupHttpResult, LookupTabs } from "../composition/types"; +import { LOOKUP_LOCALES, LookupLocaleData } from "../composition/use-locales"; export default defineComponent({ name: "LookupContainer", @@ -21,10 +22,11 @@ export default defineComponent({ setup(props: LookupProps, context) { const currentTab = inject>(LOOKUP_ACTIVE_TAB, ref(LookupTabs.dataList)); const useHttpComposition = inject(LOOKUP_HTTP_COMPOSITION) as UseHttpComposition; + const lookupLocales = inject(LOOKUP_LOCALES) as LookupLocaleData; const { lookupStates, getIdQueryParams } = useHttpComposition; const { lookupState, navigationState, queryState, lookupOptions} = lookupStates; - const { renderSearchBar } = useSearchbar(props, false, lookupStates); + const { renderSearchBar } = useSearchbar(props, false, lookupStates, lookupLocales); const { isDoubleList, getNavigationSize, isTreeList } = useCheckProps(props, lookupStates); const { renderNavigation, selectedItems:navSelectedItems, getNavigationIdField, getRelationFilter } = useNavigation(props, context); 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 ac3b4d63611c3ed556a910577a58e6707fb6b440..205cd0ca0bf01d26e3288d5e3de520e479b4a30b 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 @@ -10,6 +10,8 @@ import LookupIncludeChildCheckbox from './include-child-checkbox/include-child-c import CascadeControl from './cascade/tree-cascade.component'; import { LOOKUP_TREEROW_OPTIONS, useTreeRowOptions } from "../composition/use-treegrid-row-options"; +import { LOOKUP_LOCALES } from "../composition/use-locales"; + export default defineComponent({ name: 'FLookupModalContainer', props: lookupModalContainerProps, @@ -21,6 +23,9 @@ export default defineComponent({ provide(LOOKUP_HTTP_COMPOSITION, props.useHttpComposition); provide(LOOKUP_USER_DATA_SERVICE, props.userDataService); provide(LOOKUP_SELECTIONS_MANAGER, props.selectionsManager); + provide(LOOKUP_LOCALES, props.locales); + + const {tabs: lookupTabs, buttons: lookupButtons, tree: treeLocales} = props.locales; const includeChildNodesInfo = reactive(props.showIncludeChildNodes); @@ -154,9 +159,9 @@ export default defineComponent({
onTabClick(LookupTabs.dataList)}>数据列表
+ onClick={() => onTabClick(LookupTabs.dataList)}>{ lookupTabs.datalist }
onTabClick(LookupTabs.favorite)}>收藏夹
+ onClick={() => onTabClick(LookupTabs.favorite)}>{ lookupTabs.favorite } } @@ -178,13 +183,13 @@ export default defineComponent({ ; } 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 75fc9d183b044991d271c1e2958b9dfc23a2fe8d..6544a903cff5aa1f03ef51a6521243046ac4fdfb 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 @@ -15,5 +15,6 @@ export const lookupModalContainerProps = { showIncludeChildNodes: { type: Object, default: { show: true, value: false}}, showCascadeControl: { type: Boolean, default: false }, isMaximized: { type: Boolean, default: false }, + locales: { type: Object, default: {} }, }; export type LookupModalContainerProps = ExtractPropTypes; 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 0307fd5269daf3a4d978ab3e9a62f05d91f2333f..e65125b83e4b9324aac6bdebd58b61fc7381297f 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 @@ -5,6 +5,7 @@ import { FComboList } from "@farris/ui-vue/components/combo-list"; import { searchBarProps, SearchBarProps } from "./search-bar.props"; import { SearchField, SearchInfo } from "../../composition/types"; import { LOOKUP_HTTP_COMPOSITION, UseHttpComposition } from "../../composition/use-http"; +import { debounce } from "lodash-es"; export default defineComponent({ @@ -62,6 +63,8 @@ export default defineComponent({ context.emit('search', eventParams.value); } + const debounceRunSearch = debounce(() => onSearch(), 300); + function onClearSearchValue() { searchValue.value = ''; onSearch(); @@ -69,7 +72,7 @@ export default defineComponent({ function onEnterHandler($event: KeyboardEvent) { if ($event.key === 'Enter') { - onSearch(); + debounceRunSearch(); } } diff --git a/packages/ui-vue/components/lookup/src/components/selected-list/lookup-selected-list.component.tsx b/packages/ui-vue/components/lookup/src/components/selected-list/lookup-selected-list.component.tsx index 5deaff3ef41ffc86bff22cfbcc7ca1ad8f7b156a..70dd62705a6ce1f3c62bf5c2fc2f81fd397a66ef 100644 --- a/packages/ui-vue/components/lookup/src/components/selected-list/lookup-selected-list.component.tsx +++ b/packages/ui-vue/components/lookup/src/components/selected-list/lookup-selected-list.component.tsx @@ -8,6 +8,8 @@ import { LookupSelectedListProps, lookupSelectedListProps } from "./lookup-selec import { LOOKUP_SELECTIONS_MANAGER, LookupSelectionsManager } from "../../composition/use-selections"; import { LOOKUP_HTTP_COMPOSITION, UseHttpComposition } from "../../composition/use-http"; +import { LOOKUP_LOCALES, LookupLocaleData } from "../../composition/use-locales"; + export default defineComponent({ props: lookupSelectedListProps, setup(props: LookupSelectedListProps, context) { @@ -17,6 +19,8 @@ export default defineComponent({ const useHttpComposition = inject(LOOKUP_HTTP_COMPOSITION) as UseHttpComposition; const { lookupState, selectionState } = useHttpComposition.lookupStates; + const lookupLocales = inject(LOOKUP_LOCALES) as LookupLocaleData; + const { clearSelections, unSelectionsByIds } = lookupSelectionsManager; const popoverRef = ref(); @@ -54,7 +58,7 @@ export default defineComponent({ formatter: (cell, row) => { return ; + style="color: #dd2438;">; } }; @@ -141,7 +145,8 @@ export default defineComponent({ }); function onClearSelections() { - messagerService?.question('您确认要取消所有选中记录吗?', '', () => { + const messageString = lookupLocales?.messages.clearSelections; + messagerService?.question(messageString, '', () => { clearSelections(); }); } @@ -165,8 +170,8 @@ export default defineComponent({ return () => { return (<>
-
已选{selectionState.value.length}
- {showClearButton.value && } +
+ {showClearButton.value && }
; buttonEditInstance: Ref; userDataService: UserDataService; - useHttp: UseHttpComposition + useHttp: UseHttpComposition; + lookupLocales: LookupLocaleData; } export function useDialog( props: LookupProps, context: SetupContext, selectedItems: Ref, { - dictPicked, modelValue, buttonEditInstance, userDataService, useHttp }: UseDialogOptions) { + dictPicked, modelValue, buttonEditInstance, userDataService, useHttp, lookupLocales }: UseDialogOptions) { const notifyService: FNotifyService | null = inject(F_NOTIFY_SERVICE_TOKEN, null); const loadingService: any | null = inject('FLoadingService'); @@ -97,7 +99,7 @@ export function useDialog( async function handleSubmitValidation(): Promise<{ shouldUpdate: boolean; message?: string }> { if (selectedItems.value.length === 0) { - notifyService?.warning({ message: '请选择数据!', ...NOTIFY_OPTIONS }); + notifyService?.warning({ message: lookupLocales.messages.mustChoosAdatarow, ...NOTIFY_OPTIONS }); return { shouldUpdate: false }; } diff --git a/packages/ui-vue/components/lookup/src/composition/use-favorite.tsx b/packages/ui-vue/components/lookup/src/composition/use-favorite.tsx index 9dce96862a7e910d3ca33fa8ecc1bfacb93383a9..a029c1c980ba59784598f09222bcd6d5a57e2f8b 100644 --- a/packages/ui-vue/components/lookup/src/composition/use-favorite.tsx +++ b/packages/ui-vue/components/lookup/src/composition/use-favorite.tsx @@ -6,9 +6,12 @@ import { F_NOTIFY_SERVICE_TOKEN, FNotifyService } from "@farris/ui-vue/component import { LOOKUP_USER_DATA_SERVICE, UserDataService } from "./use-user-data"; import { LookupProps } from "../lookup.props"; +import { LOOKUP_LOCALES, LookupLocaleData } from "./use-locales"; + export function useFavorite(props: LookupProps, idField: string) { const notifyService = inject(F_NOTIFY_SERVICE_TOKEN) as FNotifyService; const userDataService = inject(LOOKUP_USER_DATA_SERVICE) as UserDataService; + const lookupLocales = inject(LOOKUP_LOCALES) as LookupLocaleData; const { userDataState } = userDataService; userDataState.data = userDataState.data || {}; @@ -36,7 +39,7 @@ export function useFavorite(props: LookupProps, idField: string) { } userDataService?.saveUserData(true).then((res) => { - const message = actiion === 'add' ? '已添加到收藏' : '已从收藏中移除'; + const message = actiion === 'add' ? lookupLocales.messages.addedFavSuccess : lookupLocales.messages.cancelFavSuccess; notifyService?.success({ message, position: 'top-center' }); }); @@ -59,10 +62,15 @@ export function useFavorite(props: LookupProps, idField: string) { updateFavorites({id: itemId, data: row.raw}, !isFavorite.value(row) ? 'add' : 'remove'); } + const getActionTitle = (row) => { + const title = isFavorite.value(row) ? lookupLocales.buttons.removeFav : lookupLocales.buttons.addFav; + return title; + }; + const favoriteColumnFormatter = (cell, row) => { return ; + style="color: #ffbd8c;" title={ getActionTitle(row) }>; }; const favoriteColumnFormatterForTree = (cell, row) => { diff --git a/packages/ui-vue/components/lookup/src/composition/use-locales.ts b/packages/ui-vue/components/lookup/src/composition/use-locales.ts new file mode 100644 index 0000000000000000000000000000000000000000..576ed33c62c762a9b62f606f9e7c7a1edba696a1 --- /dev/null +++ b/packages/ui-vue/components/lookup/src/composition/use-locales.ts @@ -0,0 +1,108 @@ +import { LocaleService } from "@farris/ui-vue/components/locale"; +import { LookupProps } from "../lookup.props"; + +export const LOOKUP_LOCALES = Symbol('FARRIS_LOOKUP_LOCALES'); + +export interface LookupLocaleData { + searchColumns: { + allColumns: string, + anyFields: string + }, + placeholder: string, + tabs: { + datalist: string, + favorite: string, + }, + tree: { + includechildren: string, + both: string, + up: string, + down: string, + disable: string + }, + buttons: { + ok: string, + cancel: string, + clear: string, + addFav: string, + removeFav: string, + selectionTotal: (total: number) => string, + }, + messages: { + clearSelections: string, + addedFavSuccess: string, + cancelFavSuccess: string, + mustChoosAdatarow: string, + mustWriteSomething: string, + }, + replaceX: (value: any,...args: any[]) => string; +} + +export function useLookupLocales(props: LookupProps): LookupLocaleData { + + function replaceX(value: any, ...args: any[]) { + args.forEach((v, i) => { + value = value.replace(`{${i}}`, v); + }); + + return value; + } + + function getValue(propertyValue, defaultValue, localeKey) { + if (!propertyValue || propertyValue === defaultValue) { + return LocaleService.getLocaleValue(localeKey); + } + return propertyValue; + } + + // placeholder + const placeholder = getValue(props.placeholder, '请选择', 'lookup.placeholder'); + + const tabs = { + datalist: LocaleService.getLocaleValue('lookup.datalist') || '数据列表', + favorite: LocaleService.getLocaleValue('lookup.favorite') || '收藏', + }; + + const buttons = { + ok: LocaleService.getLocaleValue('lookup.okText') || '确定', + cancel: LocaleService.getLocaleValue('lookup.cancelText') || '取消', + clear: LocaleService.getLocaleValue('lookup.selectedInfo.clear') || '取消已选', + addFav: LocaleService.getLocaleValue('lookup.favoriteInfo.addFavTitle') || '收藏', + removeFav: LocaleService.getLocaleValue('lookup.favoriteInfo.cancelFavTitle') || '取消收藏', + selectionTotal: (total) => { + const result = LocaleService.getLocaleValue('lookup.selectedInfo.total') || '已选 {0} 条'; + return replaceX(result, total); + } + }; + + const messages ={ + clearSelections: LocaleService.getLocaleValue('lookup.selectedInfo.confirm') || '您确认要取消所有选中记录吗?', + addedFavSuccess: LocaleService.getLocaleValue('lookup.favoriteInfo.addFav') || '已添加到收藏夹。', + cancelFavSuccess: LocaleService.getLocaleValue('lookup.favoriteInfo.cancelFav') || '已从收藏夹中移除。', + mustChoosAdatarow: LocaleService.getLocaleValue('lookup.mustChoosAdatarow') || '请选择一条数据。', + mustWriteSomething: LocaleService.getLocaleValue('lookup.mustWriteSomething') || '请输入关键字后查询。', + }; + + const tree = { + includechildren: LocaleService.getLocaleValue('lookup.includechildren') || '包含下级', + both: LocaleService.getLocaleValue('lookup.cascade.enable') || '同步选择', + up: LocaleService.getLocaleValue('lookup.cascade.up') ||'包含上级', + down: LocaleService.getLocaleValue('lookup.cascade.down') ||'包含下级', + disable: LocaleService.getLocaleValue('lookup.cascade.disable') ||'仅选择自身' + }; + + const searchColumns= { + allColumns: LocaleService.getLocaleValue('lookup.allColumns') || '所有列', + anyFields: LocaleService.getLocaleValue('lookup.anyFields') || '全部' + }; + + return { + searchColumns, + placeholder, + tree, + messages, + tabs, + buttons, + replaceX + }; +} diff --git a/packages/ui-vue/components/lookup/src/composition/use-navigation.tsx b/packages/ui-vue/components/lookup/src/composition/use-navigation.tsx index baa576b21b0a28e9173c469a0d2f0e5607929bed..3602b8f8aa0420dbe95bd967015dd4a555be30c8 100644 --- a/packages/ui-vue/components/lookup/src/composition/use-navigation.tsx +++ b/packages/ui-vue/components/lookup/src/composition/use-navigation.tsx @@ -12,14 +12,17 @@ import { LOOKUP_HTTP_COMPOSITION, UseHttpComposition } from "./use-http"; import { LOOKUP_TREE_HIERARCHY, LOOKUP_TREEROW_OPTIONS } from "./use-treegrid-row-options"; import { LookupHttpResult } from "./types"; import { useTreeNode } from "./use-treenode"; +import { LOOKUP_LOCALES, LookupLocaleData } from "./use-locales"; export function useNavigation(props: LookupProps, context) { const treeRowOptions = inject(LOOKUP_TREEROW_OPTIONS); const useHttpComposition: UseHttpComposition = inject(LOOKUP_HTTP_COMPOSITION) as UseHttpComposition; + const lookupLocales = inject(LOOKUP_LOCALES) as LookupLocaleData; + const { loadData, lookupStates, expandAllNodes, getFieldValue, getData } = useHttpComposition; const { navigationState, pageInfoState, searchState, lookupOptions } = lookupStates; - const { renderSearchBar } = useSearchbar(props, true, lookupStates); + const { renderSearchBar } = useSearchbar(props, true, lookupStates, lookupLocales); const useCheckPropsComposition = useCheckProps(props, lookupStates); const { checkPaination, navIsList, navIsTreeList } = useCheckPropsComposition; const { updatePageInfo } = usePageInfo(props, pageInfoState); 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 b4fab0eb7996cd6f7932e7d155c6eb12f12c9f88..1f81d4886b92b44ae6ace831c4454510c5646521 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 @@ -4,9 +4,10 @@ import LookupSearchBar from "../components/search-bar/search-bar.component"; import { LookupProps } from "../lookup.props"; import { useSearchFields } from "./use-search-fields"; import { LookupStates } from "./use-state"; +import { LocaleService } from "@farris/ui-vue/components/locale"; +import { LookupLocaleData } from "./use-locales"; - -export function useSearchbar(props: LookupProps, isNavigation: boolean, lookupStates: LookupStates) { +export function useSearchbar(props: LookupProps, isNavigation: boolean, lookupStates: LookupStates, lookupLocales: LookupLocaleData) { const { lookupState, searchState, navigationState } = lookupStates; const {searchFieldItems, navSearchFieldItems} = useSearchFields(props, lookupState, navigationState); @@ -18,7 +19,7 @@ export function useSearchbar(props: LookupProps, isNavigation: boolean, lookupSt let newSearchFields = searchFields; if (props.searchAnyField) { - newSearchFields = [{label: '所有列', value: '*'}].concat(searchFields); + newSearchFields = [{label:lookupLocales.searchColumns.allColumns || '所有列', value: '*'}].concat(searchFields); } if (isNavigation) { diff --git a/packages/ui-vue/components/lookup/src/lookup.component.tsx b/packages/ui-vue/components/lookup/src/lookup.component.tsx index 9dad0b39f188e22813201f6820ff6dd2215b6f1a..fd4ced77e1bfe88cd3ce0da06381acbe0250922f 100644 --- a/packages/ui-vue/components/lookup/src/lookup.component.tsx +++ b/packages/ui-vue/components/lookup/src/lookup.component.tsx @@ -34,6 +34,7 @@ import { useSelections } from './composition/use-selections'; import { useContext } from './composition/use-context'; import { usePopup } from './composition/use-popup'; import { debounce } from 'lodash-es'; +import { useLookupLocales } from './composition/use-locales'; export default defineComponent({ @@ -59,7 +60,7 @@ export default defineComponent({ const buttonIcon = computed(() => { return openType.value === 'Popup' ? popupIcon : modalIcon; }); - + const lookupLocales = useLookupLocales(props); const useHttpComposition = useHttp(props, context); const { lookupOptions, selectionState, searchValueChanged } = useHttpComposition.lookupStates; @@ -80,7 +81,8 @@ export default defineComponent({ dictPicked, modelValue, buttonEditInstance: elementRef, userDataService, - useHttp: useHttpComposition + useHttp: useHttpComposition, + lookupLocales }); const usePopupComposition = usePopup(props, context, elementRef, { useHttpComposition, selectionsManager, userDataService, updateModelValue @@ -261,7 +263,7 @@ export default defineComponent({ beforeOpen={beforeOpenDialog} onBlur={onInputBlur} onKeydown={onEnterKeyDown} - placeholder={props.placeholder} + placeholder={lookupLocales.placeholder} keepWidthWithReference={false} popupOnClick={!props.editable && openType.value === 'Popup'} onInput={onValueChange} @@ -273,7 +275,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}> + showCascadeControl={showCascadeControl.value} isMaximized={isMaximized.value} locales={lookupLocales}> {{ default: () => ( , propertyKey: string, propertyValue: any) => { 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 28a396b7e5900a8f23b3488f8be512dc1d058e16..1bd934c32e961e0d6276434dc8b81f4fcb157048 100644 --- a/packages/ui-vue/components/lookup/src/schema/lookup.schema.json +++ b/packages/ui-vue/components/lookup/src/schema/lookup.schema.json @@ -54,7 +54,7 @@ "placeholder": { "description": "", "type": "string", - "default": "" + "default": "请选择" }, "readonly": { "description": "",