mirror of
https://git.meshkee.com/applications/cssd.git
synced 2026-10-10 19:28:56 +03:30
latest
This commit is contained in:
@@ -172,8 +172,4 @@ class Url {
|
||||
static String getUsers(String 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,
|
||||
'name': name,
|
||||
'udi': udi,
|
||||
'batch_id': batchId,
|
||||
'file_batch_id': batchId,
|
||||
},
|
||||
),
|
||||
headers: {
|
||||
@@ -280,7 +280,7 @@ class ItemProvider extends ChangeNotifier {
|
||||
originalItems = [];
|
||||
}
|
||||
|
||||
for (var item in itemsData['data']['data']) {
|
||||
for (var item in itemsData['data']) {
|
||||
originalItems!.add(
|
||||
ItemResultObject(
|
||||
name: item['name'],
|
||||
@@ -324,9 +324,9 @@ class ItemProvider extends ChangeNotifier {
|
||||
|
||||
List<String> mediaList = [];
|
||||
|
||||
if (data['filesPath'] != null) {
|
||||
for (var file in data['filesPath']) {
|
||||
mediaList.add(Url.showItemImage(file));
|
||||
if (data['files'] != null || data['files'] != []) {
|
||||
for (var file in data['files']) {
|
||||
mediaList.add(file['thumbnail']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ class MyItemProvider extends ChangeNotifier {
|
||||
originalMyItems = [];
|
||||
}
|
||||
|
||||
for (var item in itemsData['data']['data']) {
|
||||
for (var item in itemsData['data']) {
|
||||
originalMyItems!.add(
|
||||
MyItemResultObject(
|
||||
name: item['name'],
|
||||
|
||||
@@ -282,7 +282,7 @@ class PackageProvider extends ChangeNotifier {
|
||||
originalItems = [];
|
||||
}
|
||||
|
||||
for (var item in testResultData['data']['data']) {
|
||||
for (var item in testResultData['data']) {
|
||||
originalItems!.add(
|
||||
PackageResultObject(
|
||||
createdAt: item['created_at'],
|
||||
@@ -300,6 +300,7 @@ class PackageProvider extends ChangeNotifier {
|
||||
await http.get(Uri.parse(Url.getPackageResult(id)), headers: {
|
||||
'Authorization': User.token,
|
||||
});
|
||||
print(response.statusCode);
|
||||
if (response.statusCode != 200) {
|
||||
return PackageDetailObject(
|
||||
id: 'null',
|
||||
|
||||
@@ -204,7 +204,7 @@ class TestResultsProvider with ChangeNotifier {
|
||||
originalItems = [];
|
||||
}
|
||||
|
||||
for (var item in testResultData['data']['data']) {
|
||||
for (var item in testResultData['data']) {
|
||||
originalItems!.add(
|
||||
TestResultObject(
|
||||
id: item['id'].toString(),
|
||||
@@ -267,7 +267,7 @@ class TestResultsProvider with ChangeNotifier {
|
||||
await addImage(batchId, image.bytes, image.path!);
|
||||
}
|
||||
dynamic vals = values;
|
||||
vals['batch_id'] = batchId;
|
||||
vals['file_batch_id'] = batchId;
|
||||
|
||||
// int counter = 0;
|
||||
// if (images.length != 0) {
|
||||
@@ -313,6 +313,15 @@ class TestResultsProvider with ChangeNotifier {
|
||||
|
||||
var data = json.decode(response.body)['data'];
|
||||
// print(data);
|
||||
|
||||
List<String> mediaList = [];
|
||||
|
||||
if (data['files'] != null || data['files'] != []) {
|
||||
for (var file in data['files']) {
|
||||
mediaList.add(file['thumbnail']);
|
||||
}
|
||||
}
|
||||
|
||||
result = {
|
||||
'id': data['id'],
|
||||
'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'] : '',
|
||||
'hospital': originalItems!
|
||||
.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!;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:carousel_slider/carousel_slider.dart';
|
||||
import 'package:cssd/config/colors.dart';
|
||||
import 'package:cssd/models/item_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -344,20 +345,28 @@ class ItemDetailsDataBox extends StatelessWidget {
|
||||
),
|
||||
],
|
||||
),
|
||||
Divider(),
|
||||
SizedBox(
|
||||
if(datas.filePath!.isNotEmpty) Divider(),
|
||||
if(datas.filePath!.isNotEmpty) SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
Container(
|
||||
if(datas.filePath!.isNotEmpty) Container(
|
||||
width: double.infinity,
|
||||
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 20),
|
||||
child: ListView.separated(
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (ctx, index) {
|
||||
child: CarouselSlider.builder(
|
||||
disableGesture: true,
|
||||
itemBuilder: (ctx, index, realIndex) {
|
||||
return Image(image: NetworkImage(datas.filePath![index]));
|
||||
},
|
||||
separatorBuilder: (ctx, index) => Divider(),
|
||||
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(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
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
|
||||
// ? Container()
|
||||
// : InkWell(
|
||||
@@ -278,6 +217,67 @@ class ItemItemBox extends StatelessWidget {
|
||||
SizedBox(
|
||||
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(
|
||||
customBorder: CircleBorder(),
|
||||
onTap: () {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:carousel_slider/carousel_slider.dart';
|
||||
import 'package:cssd/config/colors.dart';
|
||||
import 'package:cssd/config/routes.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:flutter/material.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,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user