mirror of
https://git.meshkee.com/applications/cssd.git
synced 2026-10-13 15:38:55 +03:30
latest
This commit is contained in:
@@ -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';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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'],
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -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,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user