132 lines
6.3 KiB
Dart
132 lines
6.3 KiB
Dart
import 'package:flutter/material.dart';
|
||
|
||
import 'base_state.dart';
|
||
import 'consts.dart';
|
||
import 'common.dart';
|
||
|
||
/// Класс содержит заголовки и текст блоков FAQ.
|
||
class Entry {
|
||
Entry(this.title, this.text);
|
||
final String title;
|
||
final String text;
|
||
}
|
||
|
||
class EntryItem extends StatelessWidget {
|
||
|
||
const EntryItem(this.entry);
|
||
final Entry entry;
|
||
|
||
Widget _buildTiles(BuildContext context, Entry root) {
|
||
EdgeInsets margin = new EdgeInsets.only(left: 20.0, right: 20.0);
|
||
TextStyle titleStyle = Theme.of(context).textTheme.button.copyWith(fontWeight: FontWeight.bold, color: faqTitlesColor);
|
||
return new Container(margin: margin, child: new Card(child: new ExpansionTile(
|
||
key: new PageStorageKey<Entry>(root),
|
||
title:new Text(root.title, style: titleStyle),
|
||
children: [new Container(margin: margin, padding: new EdgeInsets.only(top: 12.0, bottom: 20.0),
|
||
child: new Text(root.text, style: new TextStyle(fontWeight: FontWeight.w300, color: faqGrey, fontSize: 14.0)),
|
||
decoration: new BoxDecoration(border: new Border(top: new BorderSide(color: greyTextColor, width: 0.5))))]
|
||
)));
|
||
}
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
return _buildTiles(context, entry);
|
||
}
|
||
}
|
||
|
||
class FAQScreen extends StatefulWidget {
|
||
|
||
FAQScreen(this.b);
|
||
final bool b;
|
||
|
||
@override State createState() => new FAQScreenState<FAQScreen>(b);
|
||
}
|
||
|
||
class FAQScreenState<T> extends BaseState<FAQScreen> {
|
||
|
||
FAQScreenState(this.returnToScanner);
|
||
final bool returnToScanner;
|
||
|
||
@override String getTitle() {
|
||
return "FAQ";
|
||
}
|
||
|
||
@override getMenuButtons(BuildContext context) {
|
||
return <Widget>[getLogoutButton()];
|
||
}
|
||
|
||
@override String getHint() {
|
||
return null;
|
||
}
|
||
|
||
/// Метод возвращает ListView с блоками faq.
|
||
@override Widget getScreenContent() {
|
||
return new WillPopScope(onWillPop: onWillPop, child: new ListView.builder(
|
||
itemBuilder: (BuildContext context, int index) => new EntryItem(data[index]),
|
||
itemCount: data.length));
|
||
}
|
||
|
||
onWillPop() {
|
||
if(returnToScanner) {
|
||
return startScanner(context);
|
||
} else {
|
||
return true;
|
||
}
|
||
}
|
||
|
||
/// Список с контентом
|
||
final List<Entry> data = <Entry>[
|
||
new Entry('РЕГИСТРАЦИЯ', registrationGuide),
|
||
new Entry('ИСПОЛЬЗОВАНИЕ', usageGuide),
|
||
new Entry('КОНТАКТЫ ПОДДЕРЖКИ', supportGuide),
|
||
new Entry('ОБЩАЯ ИНФОРМАЦИЯ', commonGuide)
|
||
];
|
||
|
||
static const String registrationGuide = '''
|
||
После запуска приложения вы окажетесь на странице регистрации магазина.
|
||
|
||
Введите DIN код магазина (выдается партнером/менеджером International Auto Club, дублируется на почту)
|
||
|
||
Кликните по кнопке: «Зарегистрировать»
|
||
Дождитесь подтверждение активации программы, кликом по кнопке «Обновите статус активации» обновите статус.
|
||
|
||
После подтверждения запроса на активацию программы Партнером/менеджером кликните по кнопке «Завершить регистрацию», приложение готово к использованию.
|
||
|
||
При желании изменить номер кассы, необходимо кликнуть на «значок» верхнем правом углу и вернуться на шаг регистрации.
|
||
''';
|
||
|
||
static const String usageGuide = '''
|
||
Действие 1:
|
||
|
||
При предъявлении покупателем штрих-кода участника системы лояльности, запустите данное приложение.
|
||
|
||
На экране появится сканер штрих кодов. Отсканируйте предъявленный штрих-код сканером.
|
||
|
||
При успешном сканировании на вашем экране появятся данные партнера.
|
||
|
||
Действие 2:
|
||
|
||
Необходимо ввести сумму покупки данного покупателя и кликнуть по кнопке «Зафиксировать».
|
||
|
||
Всплывет окно подтверждения правильности ввода суммы». В случае правильного ввода суммы, кликните «ДА», сумма будет проведена и вознаграждение будет начислено участнику системы лояльности.
|
||
|
||
Если сумма введена с ошибкой, кликните «НЕТ» и Вы вернетесь на шаг ввода суммы и сможете её скорректировать.
|
||
''';
|
||
|
||
static const String supportGuide = '''
|
||
При некорректной работе приложения AUTO BONUS просьба сразу обратиться по телефону нашей технической поддержки: 8-800-234-6064 (звонок бесплатный) и Вас свяжут с менеджером.
|
||
|
||
При звонке приготовьтесь назвать ИНН и наименование вашей организации.
|
||
|
||
Рекомендуйте покупателям установить мобильное приложение дисконтной системы International Auto Club AUTO CLUB и получайте новых лояльных покупателей.
|
||
|
||
Наш сайт https://www.auto-club.biz
|
||
''';
|
||
|
||
static const String commonGuide = '''
|
||
Для эффективного считывания штрих-кода участника системы лояльности необходимо камеру сканера поднести так, чтобы в неё не попадали вертикальные полосы рамки.
|
||
|
||
Увеличение времени сканирования может произойти из-за черной рамки, в которую помещен штрих-код, так как вертикальные полосы этой рамки расцениваются сканером как часть штрих-кода.
|
||
''';
|
||
}
|