这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

56 lines
1.3 KiB

import 'package:core/services/index.dart';
import 'package:core/dependency/index.dart';
import 'package:core/utils/string.extensions.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'state.dart';
class SystemSettingsController extends GetxController {
SessionService get sessionService => injector.get();
ConfigStateService get configStateService => injector.get();
final Rx<SettingsState> _state = Rx<SettingsState>(SettingsState(
languages: [],
));
SettingsState get state => _state.value;
bool inProgress = false;
GlobalKey<FormState> formKey = GlobalKey<FormState>();
void onLanguageChange(String? language) {
_state.update((val) {
val?.language = language;
});
}
void submit() {
if (formKey.currentState?.validate() == false || inProgress) {
return;
}
if (!state.language.isNullOrWhiteSpace()) {
sessionService.setLanguage(state.language!);
}
}
void _initLanguages() {
_state.update((val) {
val?.languages = configStateService.getSupportedLocales();
});
}
@override
void onInit() {
super.onInit();
_initLanguages();
_state.update((val) {
val?.language = sessionService.currentLanguage;
});
}
@override
void onClose() {
_state.close();
super.onClose();
}
}