26 changed files with 701 additions and 898 deletions
@ -0,0 +1,99 @@ |
|||||
|
import ApiService from './serviceBase' |
||||
|
|
||||
|
const serviceUrl = process.env.VUE_APP_BASE_API |
||||
|
|
||||
|
export default class AbpConfigurationService { |
||||
|
public static getAbpConfiguration() { |
||||
|
const _url = '/api/abp/application-configuration' |
||||
|
return ApiService.Get<AbpConfiguration>(_url, serviceUrl) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
export class Auth { |
||||
|
policies?: { [key: string]: boolean} |
||||
|
grantedPolicies?: { [key: string]: boolean} |
||||
|
} |
||||
|
|
||||
|
export class CurrentTenant { |
||||
|
id?: string |
||||
|
name?: string |
||||
|
isAvailable!: boolean |
||||
|
} |
||||
|
|
||||
|
export class CurrentUser { |
||||
|
id?: string |
||||
|
email?: string |
||||
|
userName?: string |
||||
|
tenantId?: string |
||||
|
isAuthenticated!: boolean |
||||
|
} |
||||
|
|
||||
|
export class Feature { |
||||
|
values?: { [key: string]: string} |
||||
|
} |
||||
|
|
||||
|
export class DateTimeFormat { |
||||
|
calendarAlgorithmType!: string |
||||
|
dateSeparator!: string |
||||
|
dateTimeFormatLong!: string |
||||
|
fullDateTimePattern!: string |
||||
|
longTimePattern!: string |
||||
|
shortDatePattern!: string |
||||
|
shortTimePattern!: string |
||||
|
} |
||||
|
|
||||
|
export class CurrentCulture { |
||||
|
cultureName!: string |
||||
|
displayName!: string |
||||
|
englishName!: string |
||||
|
isRightToLeft!: boolean |
||||
|
name!: string |
||||
|
nativeName!: string |
||||
|
threeLetterIsoLanguageName!: string |
||||
|
twoLetterIsoLanguageName!: string |
||||
|
dateTimeFormat!: DateTimeFormat |
||||
|
} |
||||
|
|
||||
|
export class Language { |
||||
|
cultureName!: string |
||||
|
displayName!: string |
||||
|
flagIcon?: string |
||||
|
uiCultureName!: string |
||||
|
} |
||||
|
|
||||
|
export class Localization { |
||||
|
currentCulture!: CurrentCulture |
||||
|
defaultResourceName?: string |
||||
|
languages!: Language[] |
||||
|
values!: {[key:string]: {[key:string]: string}} |
||||
|
} |
||||
|
|
||||
|
export class MultiTenancy { |
||||
|
isEnabled!: boolean |
||||
|
} |
||||
|
|
||||
|
export class Setting { |
||||
|
values?: {[key:string]: string} |
||||
|
} |
||||
|
|
||||
|
export interface IAbpConfiguration { |
||||
|
auth: Auth |
||||
|
currentTenant: CurrentTenant |
||||
|
currentUser: CurrentUser |
||||
|
features: Feature |
||||
|
localization: Localization |
||||
|
multiTenancy: MultiTenancy |
||||
|
objectExtensions: any |
||||
|
setting: Setting |
||||
|
} |
||||
|
|
||||
|
export class AbpConfiguration implements IAbpConfiguration { |
||||
|
auth!: Auth |
||||
|
currentTenant!: CurrentTenant |
||||
|
currentUser!: CurrentUser |
||||
|
features!: Feature |
||||
|
localization!: Localization |
||||
|
multiTenancy!: MultiTenancy |
||||
|
objectExtensions!: any |
||||
|
setting!: Setting |
||||
|
} |
||||
|
After Width: | Height: | Size: 29 KiB |
@ -1,175 +0,0 @@ |
|||||
export default { |
|
||||
route: { |
|
||||
dashboard: 'Panel de control', |
|
||||
documentation: 'Documentación', |
|
||||
guide: 'Guía', |
|
||||
permission: 'Permisos', |
|
||||
rolePermission: 'Permisos de rol', |
|
||||
pagePermission: 'Permisos de la página', |
|
||||
directivePermission: 'Permisos de la directiva', |
|
||||
icons: 'Iconos', |
|
||||
components: 'Componentes', |
|
||||
tinymce: 'Tinymce', |
|
||||
markdown: 'Markdown', |
|
||||
jsonEditor: 'Editor JSON', |
|
||||
splitPane: 'Panel dividido', |
|
||||
avatarUpload: 'Subir avatar', |
|
||||
dropzone: 'Subir ficheros', |
|
||||
sticky: 'Sticky', |
|
||||
countTo: 'Count To', |
|
||||
componentMixin: 'Mixin', |
|
||||
backToTop: 'Ir arriba', |
|
||||
draggableDialog: 'Draggable Dialog', |
|
||||
draggableKanban: 'Draggable Kanban', |
|
||||
draggableList: 'Draggable List', |
|
||||
draggableSelect: 'Draggable Select', |
|
||||
charts: 'Gráficos', |
|
||||
barChart: 'Bar Chart', |
|
||||
lineChart: 'Gráfico de líneas', |
|
||||
mixedChart: 'Mixed Chart', |
|
||||
example: 'Ejemplo', |
|
||||
nested: 'Rutas anidadass', |
|
||||
menu1: 'Menu 1', |
|
||||
'menu1-1': 'Menu 1-1', |
|
||||
'menu1-2': 'Menu 1-2', |
|
||||
'menu1-2-1': 'Menu 1-2-1', |
|
||||
'menu1-2-2': 'Menu 1-2-2', |
|
||||
'menu1-3': 'Menu 1-3', |
|
||||
menu2: 'Menu 2', |
|
||||
table: 'Tabla', |
|
||||
dynamicTable: 'Tabla dinámica', |
|
||||
draggableTable: 'Arrastrar tabla', |
|
||||
inlineEditTable: 'Editor', |
|
||||
complexTable: 'Complex Table', |
|
||||
tab: 'Pestaña', |
|
||||
form: 'Formulario', |
|
||||
createArticle: 'Crear artículo', |
|
||||
editArticle: 'Editar artículo', |
|
||||
articleList: 'Listado de artículos', |
|
||||
errorPages: 'Páginas de error', |
|
||||
page401: '401', |
|
||||
page404: '404', |
|
||||
errorLog: 'Registro de errores', |
|
||||
excel: 'Excel', |
|
||||
exportExcel: 'Exportar a Excel', |
|
||||
selectExcel: 'Export seleccionado', |
|
||||
mergeHeader: 'Merge Header', |
|
||||
uploadExcel: 'Subir Excel', |
|
||||
zip: 'Zip', |
|
||||
pdf: 'PDF', |
|
||||
exportZip: 'Exportar a Zip', |
|
||||
theme: 'Tema', |
|
||||
clipboard: 'Clipboard', |
|
||||
i18n: 'I18n', |
|
||||
externalLink: 'Enlace externo', |
|
||||
profile: 'Profile' |
|
||||
}, |
|
||||
navbar: { |
|
||||
logOut: 'Salir', |
|
||||
dashboard: 'Panel de control', |
|
||||
github: 'Github', |
|
||||
theme: 'Tema', |
|
||||
size: 'Tamaño global', |
|
||||
profile: 'Profile' |
|
||||
}, |
|
||||
login: { |
|
||||
title: 'Formulario de acceso', |
|
||||
logIn: 'Acceso', |
|
||||
username: 'Usuario', |
|
||||
password: 'Contraseña', |
|
||||
any: 'nada', |
|
||||
thirdparty: 'Conectar con', |
|
||||
thirdpartyTips: 'No se puede simular en local, así que combine su propia simulación de negocios. ! !' |
|
||||
}, |
|
||||
documentation: { |
|
||||
documentation: 'Documentación', |
|
||||
github: 'Repositorio Github' |
|
||||
}, |
|
||||
permission: { |
|
||||
createRole: 'Nuevo rol', |
|
||||
editPermission: 'Permiso de edición', |
|
||||
roles: 'Tus permisos', |
|
||||
switchRoles: 'Cambiar permisos', |
|
||||
tips: 'In some cases it is not suitable to use v-permission, such as element Tab component or el-table-column and other asynchronous rendering dom cases which can only be achieved by manually setting the v-if.', |
|
||||
delete: 'Borrar', |
|
||||
confirm: 'Confirmar', |
|
||||
cancel: 'Cancelar' |
|
||||
}, |
|
||||
guide: { |
|
||||
description: 'The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ', |
|
||||
button: 'Ver guía' |
|
||||
}, |
|
||||
components: { |
|
||||
documentation: 'Documentación', |
|
||||
tinymceTips: 'Rich text editor is a core part of management system, but at the same time is a place with lots of problems. In the process of selecting rich texts, I also walked a lot of detours. The common rich text editors in the market are basically used, and the finally chose Tinymce. See documentation for more detailed rich text editor comparisons and introductions.', |
|
||||
stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.', |
|
||||
backToTopTips1: 'When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner', |
|
||||
backToTopTips2: 'You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally', |
|
||||
imageUploadTips: 'Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.' |
|
||||
}, |
|
||||
table: { |
|
||||
dynamicTips1: 'Fixed header, sorted by header order', |
|
||||
dynamicTips2: 'Not fixed header, sorted by click order', |
|
||||
dragTips1: 'Orden por defecto', |
|
||||
dragTips2: 'The after dragging order', |
|
||||
title: 'Título', |
|
||||
importance: 'Importancia', |
|
||||
type: 'Tipo', |
|
||||
remark: 'Remark', |
|
||||
search: 'Buscar', |
|
||||
add: 'Añadir', |
|
||||
export: 'Exportar', |
|
||||
reviewer: 'Reviewer', |
|
||||
id: 'ID', |
|
||||
date: 'Fecha', |
|
||||
author: 'Autor', |
|
||||
readings: 'Lector', |
|
||||
status: 'Estado', |
|
||||
actions: 'Acciones', |
|
||||
edit: 'Editar', |
|
||||
publish: 'Publicar', |
|
||||
draft: 'Draft', |
|
||||
delete: 'Eliminar', |
|
||||
cancel: 'Cancelar', |
|
||||
confirm: 'Confirmar' |
|
||||
}, |
|
||||
example: { |
|
||||
warning: 'Creating and editing pages cannot be cached by keep-alive because keep-alive include does not currently support caching based on routes, so it is currently cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or do not use keep-alive include to cache all pages directly. See details' |
|
||||
}, |
|
||||
errorLog: { |
|
||||
tips: 'Please click the bug icon in the upper right corner', |
|
||||
description: 'Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.', |
|
||||
documentation: 'Documento de introducción' |
|
||||
}, |
|
||||
excel: { |
|
||||
export: 'Exportar', |
|
||||
selectedExport: 'Exportar seleccionados', |
|
||||
placeholder: 'Por favor escribe un nombre de fichero' |
|
||||
}, |
|
||||
zip: { |
|
||||
export: 'Exportar', |
|
||||
placeholder: 'Por favor escribe un nombre de fichero' |
|
||||
}, |
|
||||
pdf: { |
|
||||
tips: 'Here we use window.print() to implement the feature of downloading PDF.' |
|
||||
}, |
|
||||
theme: { |
|
||||
change: 'Cambiar tema', |
|
||||
documentation: 'Documentación del tema', |
|
||||
tips: 'Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.' |
|
||||
}, |
|
||||
tagsView: { |
|
||||
refresh: 'Actualizar', |
|
||||
close: 'Cerrar', |
|
||||
closeOthers: 'Cerrar otros', |
|
||||
closeAll: 'Cerrar todos' |
|
||||
}, |
|
||||
settings: { |
|
||||
title: 'Page style setting', |
|
||||
theme: 'Theme Color', |
|
||||
showTagsView: 'Show Tags-View', |
|
||||
showSidebarLogo: 'Show Sidebar Logo', |
|
||||
fixedHeader: 'Fixed Header', |
|
||||
sidebarTextTheme: 'Sidebar Text Theme' |
|
||||
} |
|
||||
} |
|
||||
@ -1,175 +0,0 @@ |
|||||
export default { |
|
||||
route: { |
|
||||
dashboard: 'トップ', |
|
||||
documentation: 'ドキュメント', |
|
||||
guide: 'ガイド', |
|
||||
permission: '権限', |
|
||||
rolePermission: '権限ロール', |
|
||||
pagePermission: 'ページ権限', |
|
||||
directivePermission: 'ディレクティブ権限', |
|
||||
icons: 'アイコン', |
|
||||
components: 'コンポーネント', |
|
||||
tinymce: 'TinyMCE', |
|
||||
markdown: 'Markdown', |
|
||||
jsonEditor: 'JSON Editor', |
|
||||
splitPane: 'パネル', |
|
||||
avatarUpload: 'アバターアップロード', |
|
||||
dropzone: 'Dropzone', |
|
||||
sticky: 'Sticky', |
|
||||
countTo: 'Count To', |
|
||||
componentMixin: 'コンポーネントMixin', |
|
||||
backToTop: 'Back To Top', |
|
||||
draggableDialog: 'Draggable Dialog', |
|
||||
draggableKanban: 'Draggable 看板', |
|
||||
draggableList: 'Draggable List', |
|
||||
draggableSelect: 'Draggable Select', |
|
||||
charts: 'チャート', |
|
||||
barChart: 'Barチャート', |
|
||||
lineChart: 'Lineチャート', |
|
||||
mixedChart: 'Mixedチャート', |
|
||||
example: 'Example', |
|
||||
nested: 'Nested Routes', |
|
||||
menu1: 'メニュー1', |
|
||||
'menu1-1': 'メニュー 1-1', |
|
||||
'menu1-2': 'メニュー 1-2', |
|
||||
'menu1-2-1': 'メニュー 1-2-1', |
|
||||
'menu1-2-2': 'メニュー 1-2-2', |
|
||||
'menu1-3': 'メニュー 1-3', |
|
||||
menu2: 'メニュー 2', |
|
||||
table: 'Table', |
|
||||
dynamicTable: '可変 Table', |
|
||||
draggableTable: 'Draggable Table', |
|
||||
inlineEditTable: 'Inline Edit Table', |
|
||||
complexTable: 'Complex Table', |
|
||||
tab: 'Tab', |
|
||||
form: 'フォーム', |
|
||||
createArticle: '投稿作成', |
|
||||
editArticle: '投稿編集', |
|
||||
articleList: '投稿リスト', |
|
||||
errorPages: 'エラーページ', |
|
||||
page401: '401', |
|
||||
page404: '404', |
|
||||
errorLog: 'エラーログ', |
|
||||
excel: 'Excel', |
|
||||
exportExcel: '一括エクスポート', |
|
||||
selectExcel: '複数選択エクスポート', |
|
||||
mergeHeader: 'ヘッダーマージ', |
|
||||
uploadExcel: 'アップロード', |
|
||||
zip: 'Zip', |
|
||||
pdf: 'PDF', |
|
||||
exportZip: 'Export Zip', |
|
||||
theme: 'テーマ変更', |
|
||||
clipboard: 'Clipboard', |
|
||||
i18n: '多言語', |
|
||||
externalLink: '外部リンク', |
|
||||
profile: 'プロフィール' |
|
||||
}, |
|
||||
navbar: { |
|
||||
dashboard: 'トップ', |
|
||||
github: 'GitHub', |
|
||||
logOut: 'ログアウト', |
|
||||
profile: 'プロフィール', |
|
||||
theme: 'テーマ変更', |
|
||||
size: '画面サイズ' |
|
||||
}, |
|
||||
login: { |
|
||||
title: 'ユーザログイン', |
|
||||
logIn: 'ログイン', |
|
||||
username: 'ユーザ名', |
|
||||
password: 'パスワード', |
|
||||
any: 'any', |
|
||||
thirdparty: '外部IDでログイン', |
|
||||
thirdpartyTips: 'ローカル環境ではログインできません。実装が必要です。' |
|
||||
}, |
|
||||
documentation: { |
|
||||
documentation: 'ドキュメント', |
|
||||
github: 'Github Link' |
|
||||
}, |
|
||||
permission: { |
|
||||
createRole: 'ロール追加', |
|
||||
editPermission: 'ロール変更', |
|
||||
roles: 'ロール', |
|
||||
switchRoles: 'ロール切替', |
|
||||
tips: 'v-permissionは使えない時があります。例えば: Element-UI の el-tab、 el-table-column 及び他の dom。v-ifを使う必要があります。', |
|
||||
delete: '削除', |
|
||||
confirm: '確認', |
|
||||
cancel: 'キャンセル' |
|
||||
}, |
|
||||
guide: { |
|
||||
description: 'ガイドは各機能の説明です。', |
|
||||
button: 'ガイドを見る' |
|
||||
}, |
|
||||
components: { |
|
||||
documentation: 'ドキュメント', |
|
||||
tinymceTips: 'tinymceは管理画面に重要な機能ですが、その同時に落とし穴がありあす。tinymceを使う道のりが大変でした。Tinymceを使う時に各自のプロジェクト状況で判断が必要です。ドキュメントはこちら', |
|
||||
stickyTips: 'ページの指定位置へスクロールした場合、表示されます。', |
|
||||
backToTopTips1: 'トップへスクロールが表示されます。', |
|
||||
backToTopTips2: 'ボタンのスタイルはカスタマイズできます。例えば、show/hide、height、position。 またはElementのel-tooltipを使って、ツールチップを実装できます。', |
|
||||
imageUploadTips: 'mockjsは使えないため、カスタマイズしています。公式の最新バージョンを使ってください。' |
|
||||
}, |
|
||||
table: { |
|
||||
dynamicTips1: '先頭は固定、最後に追加', |
|
||||
dynamicTips2: '戦後に追加せず、指定列に追加', |
|
||||
dragTips1: 'デフォルト順番', |
|
||||
dragTips2: 'Drag後の順番', |
|
||||
title: 'タイトル', |
|
||||
importance: '重要', |
|
||||
type: 'タイプ', |
|
||||
remark: '評価', |
|
||||
search: '検索', |
|
||||
add: '追加', |
|
||||
export: 'エクスポート', |
|
||||
reviewer: 'レビュアー', |
|
||||
id: '番号', |
|
||||
date: '日時', |
|
||||
author: '作成者', |
|
||||
readings: '閲覧数', |
|
||||
status: 'ステータス', |
|
||||
actions: '操作', |
|
||||
edit: '編集', |
|
||||
publish: '公開', |
|
||||
draft: '下書き', |
|
||||
delete: 'キャンセル', |
|
||||
cancel: 'キャンセル', |
|
||||
confirm: '確認' |
|
||||
}, |
|
||||
example: { |
|
||||
warning: '新規作成と編集画面は keep-alive を使えないです。keep-alive の include はrouteのキャッシュは使えないです。そのため、component name を使ってキャッシュさせるようにします。このようなキャッシュ機能を作りたい場合,localStorageを使う手があります。もしくは keep-alive の includeを使って、全ページキャッシュする方法はあります。' |
|
||||
}, |
|
||||
errorLog: { |
|
||||
tips: '右上のbugアイコンをクリックしてください。', |
|
||||
description: '管理画面はspaを使う場合が多い、ユーザ体現向上はできますが、想定外エラーが発生する場合があります。Vueはそのエラーハンドリング機能を提供し、エラーレポートができます。', |
|
||||
documentation: 'ドキュメント' |
|
||||
}, |
|
||||
excel: { |
|
||||
export: 'エクスポート', |
|
||||
selectedExport: 'エクスポート対象を選択してください。', |
|
||||
placeholder: 'ファイル名を入力してください。' |
|
||||
}, |
|
||||
zip: { |
|
||||
export: 'エクスポート', |
|
||||
placeholder: 'ファイル名を入力してください。' |
|
||||
}, |
|
||||
pdf: { |
|
||||
tips: 'window.print() を使ってPDFダウンロードしています。' |
|
||||
}, |
|
||||
theme: { |
|
||||
change: 'テーマ切替', |
|
||||
documentation: 'ドキュメント', |
|
||||
tips: 'Tips: テーマの切り替え方法はnavbarのtheme-pickと異なります、使い方はドキュメントを確認してください。' |
|
||||
}, |
|
||||
tagsView: { |
|
||||
refresh: '更新', |
|
||||
close: '閉じる', |
|
||||
closeOthers: 'その他閉じる', |
|
||||
closeAll: 'すべて閉じる' |
|
||||
}, |
|
||||
settings: { |
|
||||
title: 'システムテーマ', |
|
||||
theme: 'テーマ色', |
|
||||
showTagsView: 'Tags-View 開く', |
|
||||
showSidebarLogo: 'Show Sidebar Logo', |
|
||||
fixedHeader: 'Fixed Header', |
|
||||
sidebarTextTheme: 'Sidebar Text Theme' |
|
||||
} |
|
||||
} |
|
||||
@ -1,175 +0,0 @@ |
|||||
export default { |
|
||||
route: { |
|
||||
dashboard: '대시보드', |
|
||||
documentation: '문서', |
|
||||
guide: '가이드', |
|
||||
permission: '권한', |
|
||||
rolePermission: '역할 권한', |
|
||||
pagePermission: '페이지 권한', |
|
||||
directivePermission: '지시 권한', |
|
||||
icons: '아이콘', |
|
||||
components: '구성 요소', |
|
||||
tinymce: 'TinyMCE', |
|
||||
markdown: 'Markdown', |
|
||||
jsonEditor: 'JSON Editor', |
|
||||
splitPane: '패널', |
|
||||
avatarUpload: '아바타업로드', |
|
||||
dropzone: 'Dropzone', |
|
||||
sticky: 'Sticky', |
|
||||
countTo: 'Count To', |
|
||||
componentMixin: '구성 요소 Mixin', |
|
||||
backToTop: 'Back To Top', |
|
||||
draggableDialog: '드래그 상자', |
|
||||
draggableKanban: '드래그 간판', |
|
||||
draggableList: '드래그 리스트', |
|
||||
draggableSelect: '드래그 선택', |
|
||||
charts: '차트', |
|
||||
barChart: '막대그래프', |
|
||||
lineChart: '꺽은선그래프', |
|
||||
mixedChart: '종합차트', |
|
||||
example: '예시', |
|
||||
nested: 'Nested Routes', |
|
||||
menu1: '메뉴1', |
|
||||
'menu1-1': '메뉴 1-1', |
|
||||
'menu1-2': '메뉴 1-2', |
|
||||
'menu1-2-1': '메뉴 1-2-1', |
|
||||
'menu1-2-2': '메뉴 1-2-2', |
|
||||
'menu1-3': '메뉴 1-3', |
|
||||
menu2: '메뉴 2', |
|
||||
table: '표', |
|
||||
dynamicTable: 'Dynamic 표', |
|
||||
draggableTable: 'Draggable 표', |
|
||||
inlineEditTable: 'Inline Edit 표', |
|
||||
complexTable: 'Complex 표', |
|
||||
tab: 'Tab', |
|
||||
form: '형태', |
|
||||
createArticle: '게시물 작성', |
|
||||
editArticle: '게시물 편집', |
|
||||
articleList: '게시물 리스트', |
|
||||
errorPages: '에러 페이지', |
|
||||
page401: '401', |
|
||||
page404: '404', |
|
||||
errorLog: '에러 로그', |
|
||||
excel: '엑셀', |
|
||||
exportExcel: '엑셀 내보내기', |
|
||||
selectExcel: '엑셀 선택', |
|
||||
mergeHeader: '헤더 병합', |
|
||||
uploadExcel: '엑셀 올리기', |
|
||||
zip: 'Zip', |
|
||||
pdf: 'PDF', |
|
||||
exportZip: 'Export Zip', |
|
||||
theme: '테마', |
|
||||
clipboard: 'Clipboard', |
|
||||
i18n: '언어', |
|
||||
externalLink: '외부 링크', |
|
||||
profile: '프로필' |
|
||||
}, |
|
||||
navbar: { |
|
||||
dashboard: '대시보드', |
|
||||
github: '깃허브', |
|
||||
logOut: '로그아웃', |
|
||||
profile: '프로필', |
|
||||
theme: '테마', |
|
||||
size: '크기' |
|
||||
}, |
|
||||
login: { |
|
||||
title: '타이틀', |
|
||||
logIn: '로그인', |
|
||||
username: '이름', |
|
||||
password: '비밀번호', |
|
||||
any: 'any', |
|
||||
thirdparty: '외부 ID로 로그인', |
|
||||
thirdpartyTips: '로컬 환경에서 로그인 할 수 없습니다.' |
|
||||
}, |
|
||||
documentation: { |
|
||||
documentation: '문서', |
|
||||
github: '깃허브 링크' |
|
||||
}, |
|
||||
permission: { |
|
||||
createRole: '역할 추가', |
|
||||
editPermission: '권한 수정', |
|
||||
roles: '역할', |
|
||||
switchRoles: '역할 바꾸기', |
|
||||
tips: 'v-permission 사용할 때가 있습니다. 예 : Element-UI의 el-tab, el-table-column 및 다른 dom. v-if를 사용해야합니다.', |
|
||||
delete: '삭제', |
|
||||
confirm: '확인', |
|
||||
cancel: '취소' |
|
||||
}, |
|
||||
guide: { |
|
||||
description: '각 기능에 대한 설명입니다.', |
|
||||
button: '버튼' |
|
||||
}, |
|
||||
components: { |
|
||||
documentation: '문서', |
|
||||
tinymceTips: '서식있는 텍스트는 관리 백엔드의 핵심 기능이지만 동시에 문제가 많은 곳입니다. 리치 텍스트를 선택하는 과정에서도 많은 우회가 필요했습니다. 시중에 나와있는 일반적인 서식있는 텍스트는 기본적으로 사용되었으며 마침내 Tinymce를 선택했습니다. 보다 자세한 리치 텍스트 비교 및 소개를 참조하십시오.', |
|
||||
stickyTips: '페이지의 지정된 위치에 스크롤하면 나타납니다.', |
|
||||
backToTopTips1: '페이지가 지정된 위치로 스크롤되면 맨 아래 오른쪽 모서리에 맨 위로 이동 단추가 나타납니다.', |
|
||||
backToTopTips2: '버튼 스타일, 표시 / 숨기기, 모양 높이, 반환 높이를 사용자 정의 할 수 있습니다. 텍스트 프롬프트가 필요한 경우 element-ui el-tooltip 요소를 외부에서 사용할 수 있습니다', |
|
||||
imageUploadTips: 'vue @ 1 버전 만 사용하고 있었고 현재 mockjs와 호환되지 않기 때문에 직접 수정했으며 사용하려는 경우 공식 버전을 사용하는 것이 좋습니다.' |
|
||||
}, |
|
||||
table: { |
|
||||
dynamicTips1: '정렬된 헤더', |
|
||||
dynamicTips2: '정렬되지 않은 헤더', |
|
||||
dragTips1: '기본 순서', |
|
||||
dragTips2: '드래그한 순서', |
|
||||
title: '타이틀', |
|
||||
importance: '중요성', |
|
||||
type: 'Type', |
|
||||
remark: 'Remark', |
|
||||
search: '검색', |
|
||||
add: '추가', |
|
||||
export: '내보내기', |
|
||||
reviewer: 'Reviewer', |
|
||||
id: 'ID', |
|
||||
date: '날짜', |
|
||||
author: '글쓴이', |
|
||||
readings: 'Readings', |
|
||||
status: '상태', |
|
||||
actions: 'Actions', |
|
||||
edit: '수정', |
|
||||
publish: '게시', |
|
||||
draft: 'Draft', |
|
||||
delete: '삭제', |
|
||||
cancel: '취소', |
|
||||
confirm: '확인' |
|
||||
}, |
|
||||
example: { |
|
||||
warning: 'keep-alive의 \'include \'는 (는) 현재 경로 기반 캐싱을 지원하지 않으므로 구성 요소 이름을 기반으로 캐시되기 때문에 keep-alive로 페이지를 만들고 편집 할 수 없습니다. 비슷한 캐싱 효과를 얻으려면 localStorage와 같은 브라우저 캐싱 구성표를 사용할 수 있습니다. 또는 keep-alive \' include \'를 사용하여 모든 페이지를 직접 캐시하지 마십시오. 자세히보다' |
|
||||
}, |
|
||||
errorLog: { |
|
||||
tips: '오른쪽 상단에있는 버그 아이콘을 클릭하십시오', |
|
||||
description: '이제 관리 시스템은 기본적으로 스파의 형태이며 사용자 경험을 향상 시키지만 페이지 문제의 가능성을 증가시킵니다. 작은 태만으로 인해 전체 페이지 교착 상태가 발생할 수 있습니다. 다행히 Vue는 오류를 처리하거나 예외를보고 할 수있는 예외 처리를 포착하는 방법을 제공합니다.', |
|
||||
documentation: '문서 소개' |
|
||||
}, |
|
||||
excel: { |
|
||||
export: '내보내기', |
|
||||
selectedExport: '선택 항목 내보내기', |
|
||||
placeholder: '파일 이름을 입력하세요.(기본 엑셀 목록)' |
|
||||
}, |
|
||||
zip: { |
|
||||
export: '내보내기', |
|
||||
placeholder: '파일 이름을 입력하세요.(기본 파일)' |
|
||||
}, |
|
||||
pdf: { |
|
||||
tips: '여기서는 window.print ()를 사용하여 PDF 다운로드 기능을 구현합니다.' |
|
||||
}, |
|
||||
theme: { |
|
||||
change: '테마 바꾸기', |
|
||||
documentation: '테마 문서', |
|
||||
tips: 'Tips: 탐색 모음의 테마 선택과는 다른 응용 프로그램 시나리오가있는 두 가지 다른 스키닝 방법입니다. 자세한 내용은 설명서를 참조하십시오.' |
|
||||
}, |
|
||||
tagsView: { |
|
||||
refresh: '새로고침', |
|
||||
close: '닫기', |
|
||||
closeOthers: '기타 닫기', |
|
||||
closeAll: '모두 닫기' |
|
||||
}, |
|
||||
settings: { |
|
||||
title: '페이지 스타일 설정', |
|
||||
theme: '테마 색상', |
|
||||
showTagsView: 'Tags-View 열기', |
|
||||
showSidebarLogo: '사이드 메뉴 로고', |
|
||||
fixedHeader: '헤더 고정', |
|
||||
sidebarTextTheme: '사이드 메뉴 글꼴 테마' |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,27 @@ |
|||||
|
import store from '@/store' |
||||
|
import { getAbpConfig, setAbpConfig } from '@/utils/localStorage' |
||||
|
import AbpConfigurationService, { IAbpConfiguration } from '@/api/abpconfiguration' |
||||
|
import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators' |
||||
|
|
||||
|
export interface IAbpConfigurationState { |
||||
|
configuration: IAbpConfiguration |
||||
|
} |
||||
|
|
||||
|
@Module({ dynamic: true, store, name: 'abpconfiguration' }) |
||||
|
class AbpConfiguration extends VuexModule implements IAbpConfigurationState { |
||||
|
configuration = getAbpConfig() |
||||
|
|
||||
|
@Mutation |
||||
|
private SET_ABPCONFIGURATION(configuration: IAbpConfiguration) { |
||||
|
this.configuration = configuration |
||||
|
setAbpConfig(configuration) |
||||
|
} |
||||
|
|
||||
|
@Action({ rawError: true }) |
||||
|
public async GetAbpConfiguration() { |
||||
|
const config = await AbpConfigurationService.getAbpConfiguration() |
||||
|
this.SET_ABPCONFIGURATION(config) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
export const AbpConfigurationModule = getModule(AbpConfiguration) |
||||
@ -0,0 +1,26 @@ |
|||||
|
import { AbpConfiguration } from '@/api/abpconfiguration' |
||||
|
const abpConfigKey = 'vue_admin_abp_configuration' |
||||
|
export const getAbpConfig = () => { |
||||
|
const abpConfigItem = localStorage.getItem(abpConfigKey) |
||||
|
if (abpConfigItem) { |
||||
|
return JSON.parse(abpConfigItem) as AbpConfiguration |
||||
|
} |
||||
|
return new AbpConfiguration() |
||||
|
} |
||||
|
export const setAbpConfig = (abpConfig: AbpConfiguration) => { |
||||
|
const abpConfigItem = JSON.stringify(abpConfig) |
||||
|
localStorage.setItem(abpConfigKey, abpConfigItem) |
||||
|
} |
||||
|
export const removeAbpConfig = () => localStorage.removeItem(abpConfigKey) |
||||
|
|
||||
|
// User
|
||||
|
const tokenKey = 'vue_typescript_admin_token' |
||||
|
const refreshTokenKey = 'vue_typescript_admin_refresh_token' |
||||
|
export const getToken = () => localStorage.getItem(tokenKey) |
||||
|
export const setToken = (token: string) => localStorage.setItem(tokenKey, token) |
||||
|
export const getRefreshToken = () => localStorage.getItem(refreshTokenKey) |
||||
|
export const setRefreshToken = (token: string) => localStorage.setItem(refreshTokenKey, token) |
||||
|
export const removeToken = () => { |
||||
|
localStorage.removeItem(tokenKey) |
||||
|
localStorage.removeItem(refreshTokenKey) |
||||
|
} |
||||
Loading…
Reference in new issue