update staff list, add pin editor and privilege editor

This commit is contained in:
tzw
2024-02-14 16:58:45 +06:30
parent 106ddded29
commit 13e6e232d5
20 changed files with 770 additions and 113 deletions

View File

@@ -4,29 +4,29 @@ import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/multi_img_controller.dart';
import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../main/util.dart';
import '../widgets/local_button.dart';
import '../widgets/multi_img_file.dart';
typedef void FindCallBack();
import 'model/carton_model.dart';
class CartonImageUploadEditor extends StatefulWidget {
final Carton? box;
const CartonImageUploadEditor({this.box});
final Carton carton;
const CartonImageUploadEditor({required this.carton});
@override
_CartonImageUploaState createState() => _CartonImageUploaState();
}
class _CartonImageUploaState extends State<CartonImageUploadEditor> {
bool _isLoading = false;
Carton? _box;
MultiImgController multiImgController = MultiImgController();
MultiImgController _multiImgController = MultiImgController();
@override
void initState() {
super.initState();
_box = widget.box;
multiImgController.setImageUrls = _box?.photoUrls;
_multiImgController.setImageUrls = widget.carton.photoUrls;
}
@override
@@ -34,9 +34,10 @@ class _CartonImageUploaState extends State<CartonImageUploadEditor> {
final saveBtn = Padding(
padding: const EdgeInsets.symmetric(horizontal: 30),
child: LocalButton(
textKey: "btn.save",
callBack: () {},
),
textKey: "btn.save",
callBack: () {
_uploadImage();
}),
);
return LocalProgress(
@@ -53,19 +54,37 @@ class _CartonImageUploaState extends State<CartonImageUploadEditor> {
child: ListView(
children: [
Center(
child: Text("${_box?.cartonNumber}",
child: Text("${widget.carton.cartonNumber}",
style: TextStyle(
color: primaryColor,
fontSize: 25,
))),
MultiImageFile(
enabled: true,
controller: multiImgController,
controller: _multiImgController,
title: "Receipt File",
),
const SizedBox(height: 20),
saveBtn,
],
),
)));
}
_uploadImage() async {
setState(() {
_isLoading = true;
});
try {
await context.read<CartonModel>().uploadCartonImages(widget.carton,
_multiImgController.getAddedFile, _multiImgController.getDeletedUrl);
Navigator.pop(context, true);
} catch (e) {
showMsgDialog(context, "Error", e.toString());
} finally {
setState(() {
_isLoading = false;
});
}
}
}