first commit
This commit is contained in:
294
lib/screen/no_media_promo.dart
Normal file
294
lib/screen/no_media_promo.dart
Normal file
@@ -0,0 +1,294 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:text_scroll/text_scroll.dart';
|
||||
|
||||
import '../app/constant.dart';
|
||||
import '../model/display_counter_dedicated_modelv2.dart';
|
||||
import '../model/service_model.dart';
|
||||
import '../widget/clock.dart';
|
||||
import '../widget/my_antrian_customer_service_dedicated.dart';
|
||||
import '../widget/my_counter_customer_service_dedicated.dart';
|
||||
import 'customer_service_dedicatedv2.dart';
|
||||
|
||||
class DisplayTanpaPromo extends StatelessWidget {
|
||||
const DisplayTanpaPromo(
|
||||
{Key? key,
|
||||
required this.isLoading,
|
||||
required this.judul,
|
||||
required this.scrlCnt,
|
||||
required this.selectedCounter,
|
||||
required this.listBelumDilayani,
|
||||
required this.listCall,
|
||||
required this.listSedangDilayani})
|
||||
: super(key: key);
|
||||
|
||||
final ValueNotifier<bool> isLoading;
|
||||
final ValueNotifier<String> judul;
|
||||
final ScrollController scrlCnt;
|
||||
final ValueNotifier<List<Layanan>> selectedCounter;
|
||||
final ValueNotifier<List<NotServed>> listBelumDilayani;
|
||||
|
||||
final ValueNotifier<List<Call>> listCall;
|
||||
final ValueNotifier<List<Served>> listSedangDilayani;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
getNomorAntrian(String counterID) {
|
||||
var rawCall = listCall.value;
|
||||
// print(rawCall);
|
||||
Call call = Call(
|
||||
queueID: '0',
|
||||
statusID: '0',
|
||||
queueNumber: '0',
|
||||
queueCounterID: '0',
|
||||
counterCode: '0',
|
||||
orderStatus: '0');
|
||||
for (var i = 0; i < rawCall.length; i++) {
|
||||
if (rawCall[i].queueCounterID == counterID) {
|
||||
call = rawCall[i];
|
||||
}
|
||||
}
|
||||
|
||||
var rawProcess = listSedangDilayani.value;
|
||||
Served process = Served(
|
||||
queueID: '0',
|
||||
statusID: '0',
|
||||
queueNumber: '0',
|
||||
queueCounterID: '0',
|
||||
counterCode: '0',
|
||||
orderStatus: '0');
|
||||
|
||||
for (var i = 0; i < rawProcess.length; i++) {
|
||||
if (rawProcess[i].queueCounterID == counterID) {
|
||||
process = rawProcess[i];
|
||||
}
|
||||
}
|
||||
if (call.queueID != '0' && process.queueID == '0') {
|
||||
return call.queueNumber;
|
||||
} else if (call.queueID == '0' && process.queueID != '0') {
|
||||
return process.queueNumber;
|
||||
} else if (call.queueID == '0' && process.queueID == '0') {
|
||||
return '-';
|
||||
} else {
|
||||
return call.queueNumber;
|
||||
}
|
||||
}
|
||||
|
||||
getBlinkAntrian(String counterID) {
|
||||
var rawCall = listCall.value;
|
||||
// print(rawCall);
|
||||
Call call = Call(
|
||||
queueID: '0',
|
||||
statusID: '0',
|
||||
queueNumber: '0',
|
||||
queueCounterID: '0',
|
||||
counterCode: '0',
|
||||
orderStatus: '0');
|
||||
for (var i = 0; i < rawCall.length; i++) {
|
||||
if (rawCall[i].queueCounterID == counterID) {
|
||||
call = rawCall[i];
|
||||
}
|
||||
}
|
||||
|
||||
var rawProcess = listSedangDilayani.value;
|
||||
Served process = Served(
|
||||
queueID: '0',
|
||||
statusID: '0',
|
||||
queueNumber: '0',
|
||||
queueCounterID: '0',
|
||||
counterCode: '0',
|
||||
orderStatus: '0');
|
||||
|
||||
for (var i = 0; i < rawProcess.length; i++) {
|
||||
if (rawProcess[i].queueCounterID == counterID) {
|
||||
process = rawProcess[i];
|
||||
}
|
||||
}
|
||||
if (call.queueID != '0' && process.queueID == '0') {
|
||||
return true;
|
||||
} else if (call.queueID == '0' && process.queueID != '0') {
|
||||
return false;
|
||||
} else if (call.queueID == '0' && process.queueID == '0') {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return Material(
|
||||
child: Container(
|
||||
width: Constant.getActualX(context: context, x: 1920),
|
||||
height: Constant.getActualY(context: context, y: 1080),
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage('images/background.png'), fit: BoxFit.fill),
|
||||
),
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.only(left: 68, right: 68, top: 34, bottom: 32),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// judul start
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 3,
|
||||
child: Container(
|
||||
// color: Colors.green,
|
||||
// width: Constant.getActualX(context: context, x: 900),
|
||||
height: Constant.getActualY(context: context, y: 120),
|
||||
child: Stack(
|
||||
alignment: Alignment.centerLeft,
|
||||
children: [
|
||||
Container(
|
||||
width:
|
||||
Constant.getActualX(context: context, x: 1400),
|
||||
height:
|
||||
Constant.getActualY(context: context, y: 72),
|
||||
decoration: BoxDecoration(
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.black.withOpacity(0.25),
|
||||
blurRadius: 8)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
color: Colors.white),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
top: 6,
|
||||
left: 80,
|
||||
),
|
||||
child: Stack(
|
||||
alignment: Alignment.centerLeft,
|
||||
children: [
|
||||
if (isLoading.value)
|
||||
SizedBox(
|
||||
width: Constant.getActualX(
|
||||
context: context, x: 60),
|
||||
height: Constant.getActualX(
|
||||
context: context, x: 70),
|
||||
child: const CircularProgressIndicator(),
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsets.only(left: 40, right: 40),
|
||||
child: TextScroll(
|
||||
judul.value,
|
||||
velocity: Velocity(
|
||||
pixelsPerSecond: Offset(50, 0)),
|
||||
style: Constant.body_3(context: context)
|
||||
.copyWith(color: Constant.textRed),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width:
|
||||
Constant.getActualX(context: context, x: 100),
|
||||
height:
|
||||
Constant.getActualY(context: context, y: 100),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
gradient: LinearGradient(
|
||||
colors: [Constant.red1, Constant.red2])),
|
||||
),
|
||||
Positioned(
|
||||
top: 0,
|
||||
child: Image.asset(
|
||||
'images/cs.png',
|
||||
fit: BoxFit.cover,
|
||||
height: 100,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(left: 10),
|
||||
child: Clock(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
// judul end
|
||||
|
||||
// counter list start
|
||||
Expanded(
|
||||
child: Container(
|
||||
// color: Colors.blue,
|
||||
width: Constant.getActualX(context: context, x: 1920),
|
||||
height: Constant.getActualY(context: context, y: 400),
|
||||
child: GridView.count(
|
||||
scrollDirection: Axis.horizontal,
|
||||
controller: scrlCnt,
|
||||
crossAxisSpacing: 0.6,
|
||||
// mainAxisSpacing: 30,
|
||||
childAspectRatio: 1,
|
||||
crossAxisCount: 1,
|
||||
children: selectedCounter.value
|
||||
.map(
|
||||
(e) => MyCounterCustomerServiceDedicated(
|
||||
// counter: 'DOKTER UMUM',
|
||||
counter: 'Counter ${e.counterCode}',
|
||||
nomorAntrian:
|
||||
getNomorAntrian(e.counterID.toString()),
|
||||
// nomorAntrian: 'LA 001',
|
||||
borderDalam: const BorderRadius.only(
|
||||
topLeft: Radius.circular(50),
|
||||
topRight: Radius.circular(50),
|
||||
bottomLeft: Radius.circular(50)),
|
||||
borderLuar: const BorderRadius.only(
|
||||
topLeft: Radius.circular(60),
|
||||
topRight: Radius.circular(60),
|
||||
bottomLeft: Radius.circular(60),
|
||||
),
|
||||
blink: getBlinkAntrian(e.counterID.toString()),
|
||||
),
|
||||
)
|
||||
.toList()),
|
||||
),
|
||||
),
|
||||
// counter list end
|
||||
|
||||
// antrian selanjutnya start
|
||||
SizedBox(
|
||||
width: Constant.getActualX(context: context, x: 882),
|
||||
height: Constant.getActualY(context: context, y: 66),
|
||||
child: Text('Antrian Selanjutnya',
|
||||
style: Constant.S50(context: context)
|
||||
.copyWith(color: Constant.textBlack)),
|
||||
),
|
||||
SizedBox(
|
||||
height: Constant.getActualY(context: context, y: 24),
|
||||
),
|
||||
Container(
|
||||
// color: Colors.yellowAccent,
|
||||
width: Constant.getActualX(context: context, x: 1920),
|
||||
height: Constant.getActualY(context: context, y: 360),
|
||||
child: GridView.count(
|
||||
crossAxisSpacing: 10,
|
||||
mainAxisSpacing: 0,
|
||||
crossAxisCount: 3,
|
||||
childAspectRatio: 5,
|
||||
children: listBelumDilayani.value
|
||||
.map(
|
||||
(e) => MyAntrianCustomerServiceDedicated(
|
||||
antrian: e.queueNumber,
|
||||
skip: e.skipQueue,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user