This commit is contained in:
unknown
2023-12-11 22:29:06 +03:30
parent ede10a2efe
commit 1342b9f2e1
11 changed files with 157 additions and 82 deletions
-4
View File
@@ -172,8 +172,4 @@ class Url {
static String getUsers(String id) { static String getUsers(String id) {
return '$baseUrl/Users?medical_center_id=$id'; return '$baseUrl/Users?medical_center_id=$id';
} }
static String showItemImage(String file) {
return 'https://www.cssd-doc.com/$file';
}
} }
+5 -5
View File
@@ -140,7 +140,7 @@ class ItemProvider extends ChangeNotifier {
'specific': specific, 'specific': specific,
'name': name, 'name': name,
'udi': udi, 'udi': udi,
'batch_id': batchId, 'file_batch_id': batchId,
}, },
), ),
headers: { headers: {
@@ -280,7 +280,7 @@ class ItemProvider extends ChangeNotifier {
originalItems = []; originalItems = [];
} }
for (var item in itemsData['data']['data']) { for (var item in itemsData['data']) {
originalItems!.add( originalItems!.add(
ItemResultObject( ItemResultObject(
name: item['name'], name: item['name'],
@@ -324,9 +324,9 @@ class ItemProvider extends ChangeNotifier {
List<String> mediaList = []; List<String> mediaList = [];
if (data['filesPath'] != null) { if (data['files'] != null || data['files'] != []) {
for (var file in data['filesPath']) { for (var file in data['files']) {
mediaList.add(Url.showItemImage(file)); mediaList.add(file['thumbnail']);
} }
} }
+1 -1
View File
@@ -120,7 +120,7 @@ class MyItemProvider extends ChangeNotifier {
originalMyItems = []; originalMyItems = [];
} }
for (var item in itemsData['data']['data']) { for (var item in itemsData['data']) {
originalMyItems!.add( originalMyItems!.add(
MyItemResultObject( MyItemResultObject(
name: item['name'], name: item['name'],
+2 -1
View File
@@ -282,7 +282,7 @@ class PackageProvider extends ChangeNotifier {
originalItems = []; originalItems = [];
} }
for (var item in testResultData['data']['data']) { for (var item in testResultData['data']) {
originalItems!.add( originalItems!.add(
PackageResultObject( PackageResultObject(
createdAt: item['created_at'], createdAt: item['created_at'],
@@ -300,6 +300,7 @@ class PackageProvider extends ChangeNotifier {
await http.get(Uri.parse(Url.getPackageResult(id)), headers: { await http.get(Uri.parse(Url.getPackageResult(id)), headers: {
'Authorization': User.token, 'Authorization': User.token,
}); });
print(response.statusCode);
if (response.statusCode != 200) { if (response.statusCode != 200) {
return PackageDetailObject( return PackageDetailObject(
id: 'null', id: 'null',
+13 -3
View File
@@ -204,7 +204,7 @@ class TestResultsProvider with ChangeNotifier {
originalItems = []; originalItems = [];
} }
for (var item in testResultData['data']['data']) { for (var item in testResultData['data']) {
originalItems!.add( originalItems!.add(
TestResultObject( TestResultObject(
id: item['id'].toString(), id: item['id'].toString(),
@@ -267,7 +267,7 @@ class TestResultsProvider with ChangeNotifier {
await addImage(batchId, image.bytes, image.path!); await addImage(batchId, image.bytes, image.path!);
} }
dynamic vals = values; dynamic vals = values;
vals['batch_id'] = batchId; vals['file_batch_id'] = batchId;
// int counter = 0; // int counter = 0;
// if (images.length != 0) { // if (images.length != 0) {
@@ -313,6 +313,15 @@ class TestResultsProvider with ChangeNotifier {
var data = json.decode(response.body)['data']; var data = json.decode(response.body)['data'];
// print(data); // print(data);
List<String> mediaList = [];
if (data['files'] != null || data['files'] != []) {
for (var file in data['files']) {
mediaList.add(file['thumbnail']);
}
}
result = { result = {
'id': data['id'], 'id': data['id'],
'auto_cleave_id': data['inputs']['Autoclave ID'] != null 'auto_cleave_id': data['inputs']['Autoclave ID'] != null
@@ -329,7 +338,8 @@ class TestResultsProvider with ChangeNotifier {
data['test_type']['name'] != null ? data['test_type']['name'] : '', data['test_type']['name'] != null ? data['test_type']['name'] : '',
'hospital': originalItems! 'hospital': originalItems!
.firstWhere((element) => element.id == data['id'].toString()) .firstWhere((element) => element.id == data['id'].toString())
.hospital // az api safheye asli estefade mi shavad .hospital, // az api safheye asli estefade mi shavad
'files': mediaList,
}; };
return result!; return result!;
} }
@@ -1,3 +1,4 @@
import 'package:carousel_slider/carousel_slider.dart';
import 'package:cssd/config/colors.dart'; import 'package:cssd/config/colors.dart';
import 'package:cssd/models/item_model.dart'; import 'package:cssd/models/item_model.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -344,20 +345,28 @@ class ItemDetailsDataBox extends StatelessWidget {
), ),
], ],
), ),
Divider(), if(datas.filePath!.isNotEmpty) Divider(),
SizedBox( if(datas.filePath!.isNotEmpty) SizedBox(
height: 10, height: 10,
), ),
Container( if(datas.filePath!.isNotEmpty) Container(
width: double.infinity, width: double.infinity,
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 20), padding: EdgeInsets.symmetric(vertical: 10, horizontal: 20),
child: ListView.separated( child: CarouselSlider.builder(
shrinkWrap: true, disableGesture: true,
itemBuilder: (ctx, index) { itemBuilder: (ctx, index, realIndex) {
return Image(image: NetworkImage(datas.filePath![index])); return Image(image: NetworkImage(datas.filePath![index]));
}, },
separatorBuilder: (ctx, index) => Divider(),
itemCount: datas.filePath!.length, itemCount: datas.filePath!.length,
options: CarouselOptions(
enlargeCenterPage: false,
aspectRatio: 1,
viewportFraction: 1,
padEnds: false,
pauseAutoPlayOnTouch: true,
disableCenter: false,
autoPlay: false,
),
), ),
), ),
], ],
@@ -117,67 +117,6 @@ class ItemItemBox extends StatelessWidget {
Row( Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[
userData['roles']?.contains('User') ?? false
? Container()
: InkWell(
customBorder: CircleBorder(),
onTap: () {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(
item!.status == 1
? 'Are you Reject this item?'
: 'Are you Confirm this item?',
),
actions: <Widget>[
TextButton(
onPressed: () {
Provider.of<ItemProvider>(context,
listen: false)
.changeStatus(item!.id)
.then(
(value) {
if (value) {
print('true');
}
Navigator.of(context)
.popAndPushNamed(Routes
.itemResultScreen);
},
);
},
child: Text('Yes'),
),
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('No'),
),
],
);
},
);
},
child: Container(
padding: EdgeInsets.all(7),
width: 8 * _deviceBlockSize,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: item!.status == 1 ? kPink : kBlue,
),
child: Icon(
item!.status == 1 ? Icons.close : Icons.check,
size: 4 * _deviceBlockSize,
color: Colors.white,
),
),
),
SizedBox(
width: 5.0,
),
// userData['roles']?.contains('User') ?? false // userData['roles']?.contains('User') ?? false
// ? Container() // ? Container()
// : InkWell( // : InkWell(
@@ -278,6 +217,67 @@ class ItemItemBox extends StatelessWidget {
SizedBox( SizedBox(
width: 5.0, width: 5.0,
), ),
userData['roles']?.contains('User') ?? false
? Container()
: InkWell(
customBorder: CircleBorder(),
onTap: () {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(
item!.status == 1
? 'Are you Reject this item?'
: 'Are you Confirm this item?',
),
actions: <Widget>[
TextButton(
onPressed: () {
Provider.of<ItemProvider>(context,
listen: false)
.changeStatus(item!.id)
.then(
(value) {
if (value) {
print('true');
}
Navigator.of(context)
.popAndPushNamed(Routes
.itemResultScreen);
},
);
},
child: Text('Yes'),
),
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('No'),
),
],
);
},
);
},
child: Container(
padding: EdgeInsets.all(7),
width: 8 * _deviceBlockSize,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: item!.status == 1 ? kPink : kBlue,
),
child: Icon(
item!.status == 1 ? Icons.close : Icons.check,
size: 4 * _deviceBlockSize,
color: Colors.white,
),
),
),
SizedBox(
width: 5.0,
),
InkWell( InkWell(
customBorder: CircleBorder(), customBorder: CircleBorder(),
onTap: () { onTap: () {
@@ -1,3 +1,4 @@
import 'package:carousel_slider/carousel_slider.dart';
import 'package:cssd/config/colors.dart'; import 'package:cssd/config/colors.dart';
import 'package:cssd/config/routes.dart'; import 'package:cssd/config/routes.dart';
import 'package:cssd/models/item_model.dart'; import 'package:cssd/models/item_model.dart';
@@ -353,6 +354,30 @@ class MyItemsDetailsDataBox extends StatelessWidget {
), ),
], ],
), ),
if(datas.filePath!.isNotEmpty) Divider(),
if(datas.filePath!.isNotEmpty) SizedBox(
height: 10,
),
if(datas.filePath!.isNotEmpty) Container(
width: double.infinity,
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 20),
child: CarouselSlider.builder(
disableGesture: true,
itemBuilder: (ctx, index, realIndex) {
return Image(image: NetworkImage(datas.filePath![index]));
},
itemCount: datas.filePath!.length,
options: CarouselOptions(
enlargeCenterPage: false,
aspectRatio: 1,
viewportFraction: 1,
padEnds: false,
pauseAutoPlayOnTouch: true,
disableCenter: false,
autoPlay: false,
),
),
),
], ],
), ),
), ),
@@ -1,3 +1,4 @@
import 'package:carousel_slider/carousel_slider.dart';
import 'package:cssd/config/colors.dart'; import 'package:cssd/config/colors.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
@@ -238,6 +239,30 @@ class DatasBox extends StatelessWidget {
), ),
], ],
), ),
if(datas['files'].isNotEmpty) Divider(),
if(datas['files'].isNotEmpty) SizedBox(
height: 10,
),
if(datas['files'].isNotEmpty) Container(
width: double.infinity,
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 20),
child: CarouselSlider.builder(
disableGesture: true,
itemBuilder: (ctx, index, realIndex) {
return Image(image: NetworkImage(datas['files'][index]));
},
itemCount: datas['files'].length,
options: CarouselOptions(
enlargeCenterPage: false,
aspectRatio: 1,
viewportFraction: 1,
padEnds: false,
pauseAutoPlayOnTouch: true,
disableCenter: false,
autoPlay: false,
),
),
),
], ],
), ),
), ),
+8
View File
@@ -105,6 +105,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.2+3" version: "0.3.2+3"
carousel_slider:
dependency: "direct main"
description:
name: carousel_slider
sha256: "9c695cc963bf1d04a47bd6021f68befce8970bcd61d24938e1fb0918cf5d9c42"
url: "https://pub.dev"
source: hosted
version: "4.2.1"
characters: characters:
dependency: transitive dependency: transitive
description: description:
+1
View File
@@ -44,6 +44,7 @@ dependencies:
network_image: ^0.1.1 network_image: ^0.1.1
flutter_downloader: ^1.11.5 flutter_downloader: ^1.11.5
permission_handler: ^11.1.0 permission_handler: ^11.1.0
carousel_slider: ^4.2.1
# video_player: ^0.10.11+2 # video_player: ^0.10.11+2
dev_dependencies: dev_dependencies: