modify password setting
This commit is contained in:
parent
8c8b5d7f51
commit
f62ee8d55b
|
@ -543,7 +543,12 @@ func updatePassword(params string) (string, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return "", client.UpdatePassword(paramsStruct.OldPassword, paramsStruct.NewPassword)
|
err = client.UpdatePassword(paramsStruct.OldPassword, paramsStruct.NewPassword)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
setPassword(paramsStruct.NewPassword)
|
||||||
|
return "", nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateSlogan(slogan string) (string, error) {
|
func updateSlogan(slogan string) (string, error) {
|
||||||
|
|
|
@ -698,4 +698,11 @@ class Method {
|
||||||
return await _flatInvoke("updateAvatar", data);
|
return await _flatInvoke("updateAvatar", data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 修改密码
|
||||||
|
Future updatePassword(String oldPassword, String newPassword) {
|
||||||
|
return _flatInvoke("updatePassword", {
|
||||||
|
"oldPassword": oldPassword,
|
||||||
|
"newPassword": newPassword,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,6 @@ class _AccountScreenState extends State<AccountScreen> {
|
||||||
Widget _buildGui() {
|
Widget _buildGui() {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
brightness: Brightness.dark,
|
|
||||||
title: Text('配置选项'),
|
title: Text('配置选项'),
|
||||||
actions: [
|
actions: [
|
||||||
IconButton(
|
IconButton(
|
||||||
|
|
|
@ -0,0 +1,131 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
import 'package:pikapika/screens/components/ContentLoading.dart';
|
||||||
|
|
||||||
|
import '../basic/Common.dart';
|
||||||
|
|
||||||
|
class ModifyPasswordScreen extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
State<StatefulWidget> createState() => _ModifyPasswordScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ModifyPasswordScreenState extends State<ModifyPasswordScreen> {
|
||||||
|
late bool _loading = false;
|
||||||
|
late String _oldPassword = "";
|
||||||
|
late String _newPassword = "";
|
||||||
|
late String _newPasswordRep = "";
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
title: Text("修改密码"),
|
||||||
|
),
|
||||||
|
body: _loading
|
||||||
|
? Stack(
|
||||||
|
children: [
|
||||||
|
ContentLoading(label: "请稍后"),
|
||||||
|
WillPopScope(
|
||||||
|
child: Container(),
|
||||||
|
onWillPop: () async {
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
: _buildForm(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildForm() {
|
||||||
|
return ListView(
|
||||||
|
children: [
|
||||||
|
const Divider(),
|
||||||
|
ListTile(
|
||||||
|
title: Text("旧密码"),
|
||||||
|
subtitle: Text(_oldPassword == "" ? "未填写" : '\u2022' * 10),
|
||||||
|
onTap: () async {
|
||||||
|
String? input = await displayTextInputDialog(
|
||||||
|
context,
|
||||||
|
src: _oldPassword,
|
||||||
|
title: '旧密码',
|
||||||
|
hint: '请输入旧密码',
|
||||||
|
isPasswd: true,
|
||||||
|
);
|
||||||
|
if (input != null) {
|
||||||
|
setState(() {
|
||||||
|
_oldPassword = input;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
const Divider(),
|
||||||
|
ListTile(
|
||||||
|
title: Text("新密码"),
|
||||||
|
subtitle: Text(_newPassword == "" ? "未填写" : '\u2022' * 10),
|
||||||
|
onTap: () async {
|
||||||
|
String? input = await displayTextInputDialog(
|
||||||
|
context,
|
||||||
|
src: _newPassword,
|
||||||
|
title: '新密码',
|
||||||
|
hint: '请输入新密码',
|
||||||
|
isPasswd: true,
|
||||||
|
);
|
||||||
|
if (input != null) {
|
||||||
|
setState(() {
|
||||||
|
_newPassword = input;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
const Divider(),
|
||||||
|
ListTile(
|
||||||
|
title: Text("重复输入新密码"),
|
||||||
|
subtitle: Text(_newPasswordRep == "" ? "未填写" : '\u2022' * 10),
|
||||||
|
onTap: () async {
|
||||||
|
String? input = await displayTextInputDialog(
|
||||||
|
context,
|
||||||
|
src: _newPasswordRep,
|
||||||
|
title: '重复输入新密码',
|
||||||
|
hint: '请重复输入新密码',
|
||||||
|
isPasswd: true,
|
||||||
|
);
|
||||||
|
if (input != null) {
|
||||||
|
setState(() {
|
||||||
|
_newPasswordRep = input;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
const Divider(),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.all(10),
|
||||||
|
child: MaterialButton(
|
||||||
|
textColor: Colors.white,
|
||||||
|
color: Theme.of(context).appBarTheme.backgroundColor,
|
||||||
|
onPressed: () async {
|
||||||
|
if (_newPasswordRep != _newPassword) {
|
||||||
|
defaultToast(context, "新密码不匹配");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setState(() {
|
||||||
|
_loading = true;
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
await method.updatePassword(_oldPassword, _newPassword);
|
||||||
|
defaultToast(context, "修改成功");
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
} catch (e) {
|
||||||
|
defaultToast(context, "失败 : $e");
|
||||||
|
setState(() {
|
||||||
|
_loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: Text("确认"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,10 +16,10 @@ import 'package:pikapika/basic/config/FullScreenUI.dart';
|
||||||
import 'package:pikapika/basic/config/KeyboardController.dart';
|
import 'package:pikapika/basic/config/KeyboardController.dart';
|
||||||
import 'package:pikapika/basic/config/NoAnimation.dart';
|
import 'package:pikapika/basic/config/NoAnimation.dart';
|
||||||
import 'package:pikapika/basic/config/PagerAction.dart';
|
import 'package:pikapika/basic/config/PagerAction.dart';
|
||||||
|
import 'package:pikapika/basic/config/Quality.dart';
|
||||||
import 'package:pikapika/basic/config/ReaderDirection.dart';
|
import 'package:pikapika/basic/config/ReaderDirection.dart';
|
||||||
import 'package:pikapika/basic/config/ReaderSliderPosition.dart';
|
import 'package:pikapika/basic/config/ReaderSliderPosition.dart';
|
||||||
import 'package:pikapika/basic/config/ReaderType.dart';
|
import 'package:pikapika/basic/config/ReaderType.dart';
|
||||||
import 'package:pikapika/basic/config/Quality.dart';
|
|
||||||
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
import 'package:pikapika/basic/config/Themes.dart';
|
import 'package:pikapika/basic/config/Themes.dart';
|
||||||
import 'package:pikapika/basic/config/TimeOffsetHour.dart';
|
import 'package:pikapika/basic/config/TimeOffsetHour.dart';
|
||||||
|
@ -30,6 +30,7 @@ import 'package:pikapika/screens/components/NetworkSetting.dart';
|
||||||
|
|
||||||
import 'CleanScreen.dart';
|
import 'CleanScreen.dart';
|
||||||
import 'MigrateScreen.dart';
|
import 'MigrateScreen.dart';
|
||||||
|
import 'ModifyPasswordScreen.dart';
|
||||||
|
|
||||||
class SettingsScreen extends StatelessWidget {
|
class SettingsScreen extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
|
@ -37,6 +38,17 @@ class SettingsScreen extends StatelessWidget {
|
||||||
appBar: AppBar(title: Text('设置')),
|
appBar: AppBar(title: Text('设置')),
|
||||||
body: ListView(
|
body: ListView(
|
||||||
children: [
|
children: [
|
||||||
|
Divider(),
|
||||||
|
ListTile(
|
||||||
|
onTap: () async {
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => ModifyPasswordScreen()),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
title: Text('修改密码'),
|
||||||
|
),
|
||||||
Divider(),
|
Divider(),
|
||||||
NetworkSetting(),
|
NetworkSetting(),
|
||||||
Divider(),
|
Divider(),
|
||||||
|
|
Loading…
Reference in New Issue