1,统一短信、邮件、实名认证、高级功能模块中使用记录和购买记录实体类并根据类型显示数据
2,修复增值服务--邮件 使用记录:少了接收方账号和查询多久的备注问题 3,修复增值服务--短信 少了接收方账号、条数和查询多久的备注。记录进入有时不显示需下拉,下拉有英文提示问题
This commit is contained in:
parent
89c7f57e2b
commit
5e4256a766
@ -127,6 +127,8 @@ PODS:
|
|||||||
- Flutter
|
- Flutter
|
||||||
- network_info_plus (0.0.1):
|
- network_info_plus (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
|
- open_filex (0.0.2):
|
||||||
|
- Flutter
|
||||||
- package_info_plus (0.4.5):
|
- package_info_plus (0.4.5):
|
||||||
- Flutter
|
- Flutter
|
||||||
- path_provider_foundation (0.0.1):
|
- path_provider_foundation (0.0.1):
|
||||||
@ -188,6 +190,7 @@ DEPENDENCIES:
|
|||||||
- jpush_flutter (from `.symlinks/plugins/jpush_flutter/ios`)
|
- jpush_flutter (from `.symlinks/plugins/jpush_flutter/ios`)
|
||||||
- just_audio (from `.symlinks/plugins/just_audio/ios`)
|
- just_audio (from `.symlinks/plugins/just_audio/ios`)
|
||||||
- network_info_plus (from `.symlinks/plugins/network_info_plus/ios`)
|
- network_info_plus (from `.symlinks/plugins/network_info_plus/ios`)
|
||||||
|
- open_filex (from `.symlinks/plugins/open_filex/ios`)
|
||||||
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||||
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
|
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
|
||||||
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
|
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
|
||||||
@ -280,6 +283,8 @@ EXTERNAL SOURCES:
|
|||||||
:path: ".symlinks/plugins/just_audio/ios"
|
:path: ".symlinks/plugins/just_audio/ios"
|
||||||
network_info_plus:
|
network_info_plus:
|
||||||
:path: ".symlinks/plugins/network_info_plus/ios"
|
:path: ".symlinks/plugins/network_info_plus/ios"
|
||||||
|
open_filex:
|
||||||
|
:path: ".symlinks/plugins/open_filex/ios"
|
||||||
package_info_plus:
|
package_info_plus:
|
||||||
:path: ".symlinks/plugins/package_info_plus/ios"
|
:path: ".symlinks/plugins/package_info_plus/ios"
|
||||||
path_provider_foundation:
|
path_provider_foundation:
|
||||||
@ -318,7 +323,7 @@ SPEC CHECKSUMS:
|
|||||||
audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40
|
audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40
|
||||||
auto_orientation: 102ed811a5938d52c86520ddd7ecd3a126b5d39d
|
auto_orientation: 102ed811a5938d52c86520ddd7ecd3a126b5d39d
|
||||||
Bugly: 217ac2ce5f0f2626d43dbaa4f70764c953a26a31
|
Bugly: 217ac2ce5f0f2626d43dbaa4f70764c953a26a31
|
||||||
camera_avfoundation: 759172d1a77ae7be0de08fc104cfb79738b8a59e
|
camera_avfoundation: 8b8d780bcfb6a4a02b0fbe2b4bd17b5b71946e68
|
||||||
connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d
|
connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d
|
||||||
device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
|
device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
|
||||||
DKImagePickerController: 0a24ebfe7b48beeb74c27531540aaa2cc1dac6cf
|
DKImagePickerController: 0a24ebfe7b48beeb74c27531540aaa2cc1dac6cf
|
||||||
@ -332,33 +337,34 @@ SPEC CHECKSUMS:
|
|||||||
flutter_native_contact_picker: bd430ba0fbf82768bb50c2c52a69a65759a8f907
|
flutter_native_contact_picker: bd430ba0fbf82768bb50c2c52a69a65759a8f907
|
||||||
flutter_pcm_sound: de0572ca4f99091cc2abfcc31601b8a4ddd33c0e
|
flutter_pcm_sound: de0572ca4f99091cc2abfcc31601b8a4ddd33c0e
|
||||||
flutter_voice_processor: 2b89b93d69b02227ae3fd58589ee0bcfa3ca2a82
|
flutter_voice_processor: 2b89b93d69b02227ae3fd58589ee0bcfa3ca2a82
|
||||||
fluttertoast: 9f2f8e81bb5ce18facb9748d7855bf5a756fe3db
|
fluttertoast: 77ff8760d90ff5041a97e3d0c0ecaaa8472524d2
|
||||||
fluwx: c18fd6c16b03a2187cd07d6e48e32a7801962849
|
fluwx: c18fd6c16b03a2187cd07d6e48e32a7801962849
|
||||||
google_maps_flutter_ios: f135b968a67c05679e0a53538e900b5c174b0d99
|
google_maps_flutter_ios: f135b968a67c05679e0a53538e900b5c174b0d99
|
||||||
GoogleMaps: 20d7b12be49a14287f797e88e0e31bc4156aaeb4
|
GoogleMaps: 20d7b12be49a14287f797e88e0e31bc4156aaeb4
|
||||||
image_gallery_saver: cb43cc43141711190510e92c460eb1655cd343cb
|
image_gallery_saver: cb43cc43141711190510e92c460eb1655cd343cb
|
||||||
image_picker_ios: b545a5f16c0fa88e3ecbbce3ed4de45567a8ec18
|
image_picker_ios: 99dfe1854b4fa34d0364e74a78448a0151025425
|
||||||
ios-voice-processor: 8e32d7f980a06d392d128ef1cd19cf6ddcaca3c1
|
ios-voice-processor: 8e32d7f980a06d392d128ef1cd19cf6ddcaca3c1
|
||||||
JCore: 05f0f3489672ea3fa55338bae4866224bc092b1f
|
JCore: 05f0f3489672ea3fa55338bae4866224bc092b1f
|
||||||
JPush: 76668b765fcfd7c15f86b05ca0e5cdc01945ce23
|
JPush: 76668b765fcfd7c15f86b05ca0e5cdc01945ce23
|
||||||
jpush_flutter: 1f436f1a02db5c5ef9e9b42378f557096ccd328b
|
jpush_flutter: 1f436f1a02db5c5ef9e9b42378f557096ccd328b
|
||||||
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
|
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
|
||||||
network_info_plus: 6d0c3eb8367b8164fa3fb0c19875e3f59d49697f
|
network_info_plus: 6d0c3eb8367b8164fa3fb0c19875e3f59d49697f
|
||||||
|
open_filex: 6e26e659846ec990262224a12ef1c528bb4edbe4
|
||||||
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
|
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
|
||||||
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
|
path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c
|
||||||
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
|
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
|
||||||
ReachabilitySwift: 2128f3a8c9107e1ad33574c6e58e8285d460b149
|
ReachabilitySwift: 2128f3a8c9107e1ad33574c6e58e8285d460b149
|
||||||
SDWebImage: 40b0b4053e36c660a764958bff99eed16610acbb
|
SDWebImage: 40b0b4053e36c660a764958bff99eed16610acbb
|
||||||
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
|
shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695
|
||||||
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
|
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
|
||||||
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
||||||
system_settings: 8f5cdbfa72c677fc8d665b863bcc20d393d87e9d
|
system_settings: 8f5cdbfa72c677fc8d665b863bcc20d393d87e9d
|
||||||
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
|
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
|
||||||
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
|
url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812
|
||||||
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
|
video_player_avfoundation: 02011213dab73ae3687df27ce441fbbcc82b5579
|
||||||
webview_flutter_wkwebview: be0f0d33777f1bfd0c9fdcb594786704dbf65f36
|
webview_flutter_wkwebview: 4f3e50f7273d31e5500066ed267e3ae4309c5ae4
|
||||||
WechatOpenSDK-XCFramework: 36fb2bea0754266c17184adf4963d7e6ff98b69f
|
WechatOpenSDK-XCFramework: 36fb2bea0754266c17184adf4963d7e6ff98b69f
|
||||||
|
|
||||||
PODFILE CHECKSUM: 317f9473a5705c6fe4d79d95e81676f248048fdc
|
PODFILE CHECKSUM: 317f9473a5705c6fe4d79d95e81676f248048fdc
|
||||||
|
|
||||||
COCOAPODS: 1.14.3
|
COCOAPODS: 1.12.1
|
||||||
|
|||||||
@ -186,7 +186,6 @@ import 'mine/mineSet/lockUserManage/lockUserManageList/lockUserManageList_page.d
|
|||||||
import 'mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_page.dart';
|
import 'mine/mineSet/lockUserManage/ownedKeyList/ownedKeyList_page.dart';
|
||||||
import 'mine/supportStaff/supportStaff_page.dart';
|
import 'mine/supportStaff/supportStaff_page.dart';
|
||||||
import 'mine/valueAddedServices/valueAddedServicesBuy/valueAddedServicesBuy_page.dart';
|
import 'mine/valueAddedServices/valueAddedServicesBuy/valueAddedServicesBuy_page.dart';
|
||||||
import 'mine/valueAddedServices/valueAddedServicesBuyAndUseRecord/valueAddedServicesBuyAndUseRecordManage/valueAddedServicesBuyAndUseRecordManage_page.dart';
|
|
||||||
import 'mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesAddEmailTemplate/valueAddedServicesAddEmailTemplate_page.dart';
|
import 'mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesAddEmailTemplate/valueAddedServicesAddEmailTemplate_page.dart';
|
||||||
import 'mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesListEmailTemplate/valueAddedServicesListEmailTemplate_page.dart';
|
import 'mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServicesListEmailTemplate/valueAddedServicesListEmailTemplate_page.dart';
|
||||||
import 'mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_page.dart';
|
import 'mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_page.dart';
|
||||||
@ -895,10 +894,6 @@ abstract class AppRouters {
|
|||||||
name: Routers.valueAddedServicesAddEmailTemplatePage,
|
name: Routers.valueAddedServicesAddEmailTemplatePage,
|
||||||
page: () => const ValueAddedServicesAddEmailTemplatePage(),
|
page: () => const ValueAddedServicesAddEmailTemplatePage(),
|
||||||
),
|
),
|
||||||
GetPage<dynamic>(
|
|
||||||
name: Routers.valueAddedServicesBuyAndUseRecordManagePage,
|
|
||||||
page: () => const ValueAddedServicesBuyAndUseRecordManagePage(),
|
|
||||||
),
|
|
||||||
GetPage<dynamic>(
|
GetPage<dynamic>(
|
||||||
name: Routers.lockScreenPage,
|
name: Routers.lockScreenPage,
|
||||||
page: () => const LockScreenPage(),
|
page: () => const LockScreenPage(),
|
||||||
|
|||||||
@ -5,11 +5,10 @@ import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/appRouters.dart';
|
import 'package:star_lock/appRouters.dart';
|
||||||
import 'package:star_lock/app_settings/app_settings.dart';
|
import 'package:star_lock/app_settings/app_settings.dart';
|
||||||
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
|
||||||
import 'package:star_lock/login/login/entity/LoginEntity.dart';
|
import 'package:star_lock/login/login/entity/LoginEntity.dart';
|
||||||
import 'package:star_lock/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_entity.dart';
|
import 'package:star_lock/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_entity.dart';
|
||||||
import 'package:star_lock/main/lockDetail/authorizedAdmin/authorizedAdmin/notice_template_entity.dart';
|
import 'package:star_lock/main/lockDetail/authorizedAdmin/authorizedAdmin/notice_template_entity.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_entity.dart';
|
||||||
import 'package:star_lock/tools/NativeInteractionTool.dart';
|
import 'package:star_lock/tools/NativeInteractionTool.dart';
|
||||||
import 'package:star_lock/tools/dateTool.dart';
|
import 'package:star_lock/tools/dateTool.dart';
|
||||||
import 'package:star_lock/tools/showCupertinoAlertView.dart';
|
import 'package:star_lock/tools/showCupertinoAlertView.dart';
|
||||||
@ -244,7 +243,7 @@ class AuthorizedAdminLogic extends BaseGetXController {
|
|||||||
|
|
||||||
//检测实名认证是否支持开启
|
//检测实名认证是否支持开启
|
||||||
Future<void> keyCheckFace() async {
|
Future<void> keyCheckFace() async {
|
||||||
final AdvancedFunctionRecordEntity entity =
|
final ValueAddedServicesHighFunctionEntity entity =
|
||||||
await ApiRepository.to.keyCheckFace(
|
await ApiRepository.to.keyCheckFace(
|
||||||
lockId: CommonDataManage().currentKeyInfo.lockId ?? 0,
|
lockId: CommonDataManage().currentKeyInfo.lockId ?? 0,
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/appRouters.dart';
|
import 'package:star_lock/appRouters.dart';
|
||||||
@ -6,7 +5,7 @@ import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
|||||||
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_state.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_state.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_entity.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import 'package:star_lock/tools/showCupertinoAlertView.dart';
|
import 'package:star_lock/tools/showCupertinoAlertView.dart';
|
||||||
@ -148,7 +147,7 @@ class ElectronicKeyDetailLogic extends BaseGetXController {
|
|||||||
Future<void> checkRealNameStatus(int realNameAuthStatus) async {
|
Future<void> checkRealNameStatus(int realNameAuthStatus) async {
|
||||||
//打开实名认证 必须输入身份证号和真实姓名
|
//打开实名认证 必须输入身份证号和真实姓名
|
||||||
if (realNameAuthStatus == 1) {
|
if (realNameAuthStatus == 1) {
|
||||||
final AdvancedFunctionRecordEntity entity =
|
final ValueAddedServicesHighFunctionEntity entity =
|
||||||
await ApiRepository.to.keyCheckFace(
|
await ApiRepository.to.keyCheckFace(
|
||||||
lockId: CommonDataManage().currentKeyInfo.lockId ?? 0,
|
lockId: CommonDataManage().currentKeyInfo.lockId ?? 0,
|
||||||
);
|
);
|
||||||
@ -397,7 +396,7 @@ class ElectronicKeyDetailLogic extends BaseGetXController {
|
|||||||
|
|
||||||
//检测实名认证是否支持开启
|
//检测实名认证是否支持开启
|
||||||
Future<void> keyCheckFace() async {
|
Future<void> keyCheckFace() async {
|
||||||
final AdvancedFunctionRecordEntity entity =
|
final ValueAddedServicesHighFunctionEntity entity =
|
||||||
await ApiRepository.to.keyCheckFace(
|
await ApiRepository.to.keyCheckFace(
|
||||||
lockId: CommonDataManage().currentKeyInfo.lockId ?? 0,
|
lockId: CommonDataManage().currentKeyInfo.lockId ?? 0,
|
||||||
);
|
);
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
|||||||
import 'package:star_lock/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_entity.dart';
|
import 'package:star_lock/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_entity.dart';
|
||||||
import 'package:star_lock/main/lockDetail/authorizedAdmin/authorizedAdmin/notice_template_entity.dart';
|
import 'package:star_lock/main/lockDetail/authorizedAdmin/authorizedAdmin/notice_template_entity.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_state.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_state.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_entity.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/NativeInteractionTool.dart';
|
import 'package:star_lock/tools/NativeInteractionTool.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
@ -205,7 +205,7 @@ class SendElectronicKeyViewLogic extends BaseGetXController {
|
|||||||
|
|
||||||
//检测实名认证是否支持开启
|
//检测实名认证是否支持开启
|
||||||
Future<void> keyCheckFace() async {
|
Future<void> keyCheckFace() async {
|
||||||
final AdvancedFunctionRecordEntity entity =
|
final ValueAddedServicesHighFunctionEntity entity =
|
||||||
await ApiRepository.to.keyCheckFace(
|
await ApiRepository.to.keyCheckFace(
|
||||||
lockId: CommonDataManage().currentKeyInfo.lockId ?? 0,
|
lockId: CommonDataManage().currentKeyInfo.lockId ?? 0,
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,132 +0,0 @@
|
|||||||
class AdvancedFunctionRecordEntity {
|
|
||||||
int? errorCode;
|
|
||||||
String? description;
|
|
||||||
String? errorMsg;
|
|
||||||
Data? data;
|
|
||||||
|
|
||||||
AdvancedFunctionRecordEntity(
|
|
||||||
{this.errorCode, this.description, this.errorMsg, this.data});
|
|
||||||
|
|
||||||
AdvancedFunctionRecordEntity.fromJson(Map<String, dynamic> json) {
|
|
||||||
errorCode = json['errorCode'];
|
|
||||||
description = json['description'];
|
|
||||||
errorMsg = json['errorMsg'];
|
|
||||||
data = json['data'] != null ? Data.fromJson(json['data']) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
|
||||||
final Map<String, dynamic> data = <String, dynamic>{};
|
|
||||||
data['errorCode'] = errorCode;
|
|
||||||
data['description'] = description;
|
|
||||||
data['errorMsg'] = errorMsg;
|
|
||||||
if (this.data != null) {
|
|
||||||
data['data'] = this.data!.toJson();
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Data {
|
|
||||||
int? pageNo;
|
|
||||||
int? pageSize;
|
|
||||||
int? total;
|
|
||||||
List<RecordItem>? recordList;
|
|
||||||
|
|
||||||
Data({this.pageNo, this.pageSize, this.total, this.recordList});
|
|
||||||
|
|
||||||
Data.fromJson(Map<String, dynamic> json) {
|
|
||||||
pageNo = json['pageNo'];
|
|
||||||
pageSize = json['pageSize'];
|
|
||||||
total = json['total'];
|
|
||||||
if (json['list'] != null) {
|
|
||||||
recordList = <RecordItem>[];
|
|
||||||
json['list'].forEach((v) {
|
|
||||||
recordList!.add(RecordItem.fromJson(v));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
|
||||||
final Map<String, dynamic> data = <String, dynamic>{};
|
|
||||||
data['pageNo'] = pageNo;
|
|
||||||
data['pageSize'] = pageSize;
|
|
||||||
data['total'] = total;
|
|
||||||
if (recordList != null) {
|
|
||||||
data['list'] = recordList!.map((v) => v.toJson()).toList();
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RecordItem {
|
|
||||||
int? id;
|
|
||||||
int? userId;
|
|
||||||
String? orderNumber;
|
|
||||||
String? type;
|
|
||||||
int? recordType;
|
|
||||||
int? smsCount;
|
|
||||||
int? emailCount;
|
|
||||||
int? cloudauthCount;
|
|
||||||
int? vipLockCount;
|
|
||||||
int? vipYear;
|
|
||||||
String? amount;
|
|
||||||
String? createdAt;
|
|
||||||
String? updatedAt;
|
|
||||||
String? useDate;
|
|
||||||
String? buyDate;
|
|
||||||
|
|
||||||
RecordItem(
|
|
||||||
{this.id,
|
|
||||||
this.userId,
|
|
||||||
this.orderNumber,
|
|
||||||
this.type,
|
|
||||||
this.recordType,
|
|
||||||
this.smsCount,
|
|
||||||
this.emailCount,
|
|
||||||
this.cloudauthCount,
|
|
||||||
this.vipLockCount,
|
|
||||||
this.vipYear,
|
|
||||||
this.amount,
|
|
||||||
this.createdAt,
|
|
||||||
this.updatedAt,
|
|
||||||
this.useDate,
|
|
||||||
this.buyDate});
|
|
||||||
|
|
||||||
RecordItem.fromJson(Map<String, dynamic> json) {
|
|
||||||
id = json['id'];
|
|
||||||
userId = json['user_id'];
|
|
||||||
orderNumber = json['order_number'];
|
|
||||||
type = json['type'];
|
|
||||||
recordType = json['record_type'];
|
|
||||||
smsCount = json['sms_count'];
|
|
||||||
emailCount = json['email_count'];
|
|
||||||
cloudauthCount = json['cloudauth_count'];
|
|
||||||
vipLockCount = json['vip_lock_count'];
|
|
||||||
vipYear = json['vip_year'];
|
|
||||||
amount = json['amount'];
|
|
||||||
createdAt = json['created_at'];
|
|
||||||
updatedAt = json['updated_at'];
|
|
||||||
useDate = json['useDate'];
|
|
||||||
buyDate = json['buyDate'];
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
|
||||||
final Map<String, dynamic> data = <String, dynamic>{};
|
|
||||||
data['id'] = id;
|
|
||||||
data['user_id'] = userId;
|
|
||||||
data['order_number'] = orderNumber;
|
|
||||||
data['type'] = type;
|
|
||||||
data['record_type'] = recordType;
|
|
||||||
data['sms_count'] = smsCount;
|
|
||||||
data['email_count'] = emailCount;
|
|
||||||
data['cloudauth_count'] = cloudauthCount;
|
|
||||||
data['vip_lock_count'] = vipLockCount;
|
|
||||||
data['vip_year'] = vipYear;
|
|
||||||
data['amount'] = amount;
|
|
||||||
data['created_at'] = createdAt;
|
|
||||||
data['updated_at'] = updatedAt;
|
|
||||||
data['useDate'] = useDate;
|
|
||||||
data['buyDate'] = buyDate;
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,8 +1,8 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_entity.dart';
|
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_state.dart';
|
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_state.dart';
|
||||||
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart';
|
||||||
|
|
||||||
import '../../../../network/api_repository.dart';
|
import '../../../../network/api_repository.dart';
|
||||||
import '../../../../tools/baseGetXController.dart';
|
import '../../../../tools/baseGetXController.dart';
|
||||||
@ -28,8 +28,7 @@ class AdvancedFunctionRecordLogic extends BaseGetXController {
|
|||||||
if (!load) {
|
if (!load) {
|
||||||
buyPageNo = 1;
|
buyPageNo = 1;
|
||||||
}
|
}
|
||||||
AdvancedFunctionRecordEntity entity =
|
UseRecordListEntity entity = await ApiRepository.to.getBuyRecordList(
|
||||||
await ApiRepository.to.getBuyRecordList(
|
|
||||||
type: type,
|
type: type,
|
||||||
recordType: 10,
|
recordType: 10,
|
||||||
pageNo: buyPageNo,
|
pageNo: buyPageNo,
|
||||||
|
|||||||
@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/app_settings/app_colors.dart';
|
import 'package:star_lock/app_settings/app_colors.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_entity.dart';
|
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_logic.dart';
|
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_logic.dart';
|
||||||
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart';
|
||||||
import 'package:star_lock/tools/noData.dart';
|
import 'package:star_lock/tools/noData.dart';
|
||||||
|
|
||||||
import '../../../tools/titleAppBar.dart';
|
import '../../../tools/titleAppBar.dart';
|
||||||
@ -44,7 +44,7 @@ class _AdvancedFunctionRecordPageState
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _recordKeyItem(RecordItem itemData) {
|
Widget _recordKeyItem(UseItemData itemData) {
|
||||||
return Container(
|
return Container(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 10.h),
|
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 10.h),
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart';
|
||||||
|
|
||||||
class AdvancedFunctionRecordState {
|
class AdvancedFunctionRecordState {
|
||||||
var buyRecordList = <RecordItem>[].obs;
|
var buyRecordList = <UseItemData>[].obs;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,32 +0,0 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:get/get.dart';
|
|
||||||
|
|
||||||
import '../../../../app_settings/app_colors.dart';
|
|
||||||
import '../../../../tools/titleAppBar.dart';
|
|
||||||
import '../../../../translations/trans_lib.dart';
|
|
||||||
import 'valueAddedServicesBuyAndUseRecordManage_tabbar.dart';
|
|
||||||
|
|
||||||
class ValueAddedServicesBuyAndUseRecordManagePage extends StatefulWidget {
|
|
||||||
const ValueAddedServicesBuyAndUseRecordManagePage({Key? key}) : super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<ValueAddedServicesBuyAndUseRecordManagePage> createState() => _ValueAddedServicesBuyAndUseRecordManagePageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _ValueAddedServicesBuyAndUseRecordManagePageState extends State<ValueAddedServicesBuyAndUseRecordManagePage> {
|
|
||||||
var index=0;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
backgroundColor: Colors.white,
|
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.sendKey!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
|
||||||
body: Column(
|
|
||||||
children: [
|
|
||||||
ValueAddedServicesBuyAndUseRecordManageTabbar(initialIndex: index,),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,111 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
||||||
|
|
||||||
import '../../../../app_settings/app_colors.dart';
|
|
||||||
import '../../../../tools/CustomUnderlineTabIndicator.dart';
|
|
||||||
import '../valueAddedServicesBuyAndUseRecord_page.dart';
|
|
||||||
|
|
||||||
class ValueAddedServicesBuyAndUseRecordManageTabbar extends StatefulWidget {
|
|
||||||
var initialIndex = 1;
|
|
||||||
|
|
||||||
ValueAddedServicesBuyAndUseRecordManageTabbar(
|
|
||||||
{Key? key, required this.initialIndex})
|
|
||||||
: super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<ValueAddedServicesBuyAndUseRecordManageTabbar> createState() =>
|
|
||||||
_ValueAddedServicesBuyAndUseRecordManageTabbarState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _ValueAddedServicesBuyAndUseRecordManageTabbarState
|
|
||||||
extends State<ValueAddedServicesBuyAndUseRecordManageTabbar>
|
|
||||||
with SingleTickerProviderStateMixin {
|
|
||||||
late TabController _tabController;
|
|
||||||
|
|
||||||
final List<ItemView> _itemTabs = <ItemView>[
|
|
||||||
ItemView(title: "购买记录", type: "0"),
|
|
||||||
ItemView(title: "使用记录", type: "1")
|
|
||||||
// ItemView(title: TranslationLoader.lanKeys!.once!.tr, type: "2"),
|
|
||||||
// ItemView(title: TranslationLoader.lanKeys!.circulation!.tr, type: "3"),
|
|
||||||
];
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
// TODO: implement initState
|
|
||||||
super.initState();
|
|
||||||
_tabController = TabController(
|
|
||||||
vsync: this,
|
|
||||||
length: _itemTabs.length,
|
|
||||||
initialIndex: widget.initialIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Expanded(
|
|
||||||
child: Column(
|
|
||||||
children: [
|
|
||||||
_tabBar(),
|
|
||||||
_pageWidget(),
|
|
||||||
],
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
TabBar _tabBar() {
|
|
||||||
return TabBar(
|
|
||||||
controller: _tabController,
|
|
||||||
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
|
||||||
isScrollable: true,
|
|
||||||
indicatorColor: Colors.red,
|
|
||||||
unselectedLabelColor: Colors.black,
|
|
||||||
unselectedLabelStyle: TextStyle(
|
|
||||||
color: AppColors.mainColor,
|
|
||||||
fontSize: 24.sp,
|
|
||||||
),
|
|
||||||
automaticIndicatorColorAdjustment: true,
|
|
||||||
labelColor: AppColors.mainColor,
|
|
||||||
labelStyle: TextStyle(
|
|
||||||
color: AppColors.mainColor,
|
|
||||||
fontSize: 24.sp,
|
|
||||||
fontWeight: FontWeight.w600),
|
|
||||||
indicator: CustomUnderlineTabIndicator(
|
|
||||||
borderSide: BorderSide(color: AppColors.mainColor, width: 4.w),
|
|
||||||
strokeCap: StrokeCap.round,
|
|
||||||
width: 30.w),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Tab _tab(ItemView item) {
|
|
||||||
return Tab(
|
|
||||||
// text: item.title,
|
|
||||||
child: Container(
|
|
||||||
width: 1.sw / 4,
|
|
||||||
margin: EdgeInsets.all(10.w),
|
|
||||||
// color: Colors.red,
|
|
||||||
child: Text(
|
|
||||||
item.title,
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _pageWidget() {
|
|
||||||
return Expanded(
|
|
||||||
child: TabBarView(
|
|
||||||
controller: _tabController,
|
|
||||||
children: _itemTabs
|
|
||||||
.map((ItemView item) => ValueAddedServicesBuyAndUseRecordPage(
|
|
||||||
type: item.type,
|
|
||||||
))
|
|
||||||
.toList(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class ItemView {
|
|
||||||
const ItemView({required this.title, required this.type});
|
|
||||||
|
|
||||||
final String title;
|
|
||||||
final String type;
|
|
||||||
}
|
|
||||||
@ -1,111 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
||||||
import 'package:star_lock/app_settings/app_colors.dart';
|
|
||||||
|
|
||||||
class ValueAddedServicesBuyAndUseRecordPage extends StatefulWidget {
|
|
||||||
final String type;
|
|
||||||
|
|
||||||
const ValueAddedServicesBuyAndUseRecordPage({Key? key, required this.type})
|
|
||||||
: super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<ValueAddedServicesBuyAndUseRecordPage> createState() =>
|
|
||||||
_ValueAddedServicesBuyAndUseRecordPageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _ValueAddedServicesBuyAndUseRecordPageState
|
|
||||||
extends State<ValueAddedServicesBuyAndUseRecordPage> {
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return ListView.builder(
|
|
||||||
itemCount: 20,
|
|
||||||
itemBuilder: (c, index) {
|
|
||||||
if (index % 2 == 0) {
|
|
||||||
return _dateItem("2023-06-29");
|
|
||||||
} else {
|
|
||||||
return _operatingRecordItem('images/controls_user.png', "张三",
|
|
||||||
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
|
||||||
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _dateItem(String lockDate) {
|
|
||||||
return Container(
|
|
||||||
height: 60.h,
|
|
||||||
color: AppColors.mainBackgroundColor,
|
|
||||||
padding: EdgeInsets.only(left: 20.h, right: 20.h),
|
|
||||||
child: Row(
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
lockDate,
|
|
||||||
style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _operatingRecordItem(String lockTypeIcon, String lockTypeTitle,
|
|
||||||
String beginTime, String endTime, Function() action) {
|
|
||||||
return GestureDetector(
|
|
||||||
onTap: action,
|
|
||||||
child: Container(
|
|
||||||
height: 90.h,
|
|
||||||
// padding: EdgeInsets.only(left: 20.w, right: 20.w),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Colors.white,
|
|
||||||
borderRadius: BorderRadius.circular(10.w),
|
|
||||||
),
|
|
||||||
child: Row(
|
|
||||||
children: [
|
|
||||||
SizedBox(
|
|
||||||
width: 30.w,
|
|
||||||
),
|
|
||||||
Image.asset(
|
|
||||||
lockTypeIcon,
|
|
||||||
width: 50.w,
|
|
||||||
height: 50.w,
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
width: 20.w,
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: Column(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Row(
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
lockTypeTitle,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 24.sp, color: AppColors.blackColor),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
SizedBox(height: 10.h),
|
|
||||||
Container(
|
|
||||||
child: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
"2023.6.21 11.15",
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 20.sp,
|
|
||||||
color: AppColors.darkGrayTextColor),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(width: 20.h),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(width: 20.h),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -30,18 +30,18 @@ class Data {
|
|||||||
int? pageNo;
|
int? pageNo;
|
||||||
int? pageSize;
|
int? pageSize;
|
||||||
int? total;
|
int? total;
|
||||||
List<UseItemData>? useRecordList;
|
List<UseItemData>? recordList;
|
||||||
|
|
||||||
Data({this.pageNo, this.pageSize, this.total, this.useRecordList});
|
Data({this.pageNo, this.pageSize, this.total, this.recordList});
|
||||||
|
|
||||||
Data.fromJson(Map<String, dynamic> json) {
|
Data.fromJson(Map<String, dynamic> json) {
|
||||||
pageNo = json['pageNo'];
|
pageNo = json['pageNo'];
|
||||||
pageSize = json['pageSize'];
|
pageSize = json['pageSize'];
|
||||||
total = json['total'];
|
total = json['total'];
|
||||||
if (json['list'] != null) {
|
if (json['list'] != null) {
|
||||||
useRecordList = <UseItemData>[];
|
recordList = <UseItemData>[];
|
||||||
json['list'].forEach((v) {
|
json['list'].forEach((v) {
|
||||||
useRecordList!.add(UseItemData.fromJson(v));
|
recordList!.add(UseItemData.fromJson(v));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -51,8 +51,8 @@ class Data {
|
|||||||
data['pageNo'] = pageNo;
|
data['pageNo'] = pageNo;
|
||||||
data['pageSize'] = pageSize;
|
data['pageSize'] = pageSize;
|
||||||
data['total'] = total;
|
data['total'] = total;
|
||||||
if (useRecordList != null) {
|
if (recordList != null) {
|
||||||
data['list'] = useRecordList!.map((v) => v.toJson()).toList();
|
data['list'] = recordList!.map((v) => v.toJson()).toList();
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
@ -71,6 +71,15 @@ class UseItemData {
|
|||||||
String? createdAt;
|
String? createdAt;
|
||||||
String? updatedAt;
|
String? updatedAt;
|
||||||
String? useDate;
|
String? useDate;
|
||||||
|
String? orderNumber;
|
||||||
|
int? recordType;
|
||||||
|
int? smsCount;
|
||||||
|
int? emailCount;
|
||||||
|
int? cloudauthCount;
|
||||||
|
int? vipLockCount;
|
||||||
|
int? vipYear;
|
||||||
|
String? amount;
|
||||||
|
String? buyDate;
|
||||||
|
|
||||||
UseItemData(
|
UseItemData(
|
||||||
{this.id,
|
{this.id,
|
||||||
@ -83,7 +92,17 @@ class UseItemData {
|
|||||||
this.lockName,
|
this.lockName,
|
||||||
this.consCount,
|
this.consCount,
|
||||||
this.createdAt,
|
this.createdAt,
|
||||||
this.updatedAt});
|
this.updatedAt,
|
||||||
|
this.useDate,
|
||||||
|
this.orderNumber,
|
||||||
|
this.recordType,
|
||||||
|
this.smsCount,
|
||||||
|
this.emailCount,
|
||||||
|
this.cloudauthCount,
|
||||||
|
this.vipLockCount,
|
||||||
|
this.vipYear,
|
||||||
|
this.amount,
|
||||||
|
this.buyDate});
|
||||||
|
|
||||||
UseItemData.fromJson(Map<String, dynamic> json) {
|
UseItemData.fromJson(Map<String, dynamic> json) {
|
||||||
id = json['id'];
|
id = json['id'];
|
||||||
@ -98,6 +117,15 @@ class UseItemData {
|
|||||||
createdAt = json['created_at'];
|
createdAt = json['created_at'];
|
||||||
updatedAt = json['updated_at'];
|
updatedAt = json['updated_at'];
|
||||||
useDate = json['useDate'];
|
useDate = json['useDate'];
|
||||||
|
orderNumber = json['order_number'];
|
||||||
|
recordType = json['record_type'];
|
||||||
|
smsCount = json['sms_count'];
|
||||||
|
emailCount = json['email_count'];
|
||||||
|
cloudauthCount = json['cloudauth_count'];
|
||||||
|
vipLockCount = json['vip_lock_count'];
|
||||||
|
vipYear = json['vip_year'];
|
||||||
|
amount = json['amount'];
|
||||||
|
buyDate = json['buyDate'];
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
@ -114,6 +142,15 @@ class UseItemData {
|
|||||||
data['created_at'] = createdAt;
|
data['created_at'] = createdAt;
|
||||||
data['updated_at'] = updatedAt;
|
data['updated_at'] = updatedAt;
|
||||||
data['useDate'] = useDate;
|
data['useDate'] = useDate;
|
||||||
|
data['order_number'] = orderNumber;
|
||||||
|
data['record_type'] = recordType;
|
||||||
|
data['sms_count'] = smsCount;
|
||||||
|
data['email_count'] = emailCount;
|
||||||
|
data['cloudauth_count'] = cloudauthCount;
|
||||||
|
data['vip_lock_count'] = vipLockCount;
|
||||||
|
data['vip_year'] = vipYear;
|
||||||
|
data['amount'] = amount;
|
||||||
|
data['buyDate'] = buyDate;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,9 @@
|
|||||||
import 'dart:async';
|
|
||||||
|
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_entity.dart';
|
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_arg.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_arg.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_state.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_state.dart';
|
||||||
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import '../../../network/api_repository.dart';
|
|
||||||
|
|
||||||
class ValueAddedServicesRecordLogic extends BaseGetXController {
|
class ValueAddedServicesRecordLogic extends BaseGetXController {
|
||||||
ValueAddedServicesRecordLogic();
|
ValueAddedServicesRecordLogic();
|
||||||
@ -25,6 +22,7 @@ class ValueAddedServicesRecordLogic extends BaseGetXController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
type = data['type'];
|
type = data['type'];
|
||||||
|
loadBuyRecordList(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//请求购买记录列表
|
//请求购买记录列表
|
||||||
@ -32,16 +30,21 @@ class ValueAddedServicesRecordLogic extends BaseGetXController {
|
|||||||
if (!load) {
|
if (!load) {
|
||||||
buyPageNo = 1;
|
buyPageNo = 1;
|
||||||
}
|
}
|
||||||
final AdvancedFunctionRecordEntity entity =
|
final UseRecordListEntity entity = await ApiRepository.to.getBuyRecordList(
|
||||||
await ApiRepository.to.getBuyRecordList(
|
|
||||||
type: type,
|
type: type,
|
||||||
recordType: 10,
|
recordType: 10,
|
||||||
pageNo: buyPageNo,
|
pageNo: buyPageNo,
|
||||||
);
|
);
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
state.buyRecordList.value = entity.data!.recordList!;
|
if (load) {
|
||||||
|
state.buyRecordList.addAll(entity.data!.recordList!);
|
||||||
|
} else {
|
||||||
|
state.buyRecordList.value = entity.data!.recordList!;
|
||||||
|
}
|
||||||
state.buyRecordList.refresh();
|
state.buyRecordList.refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
loadUseRecordList(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//请求使用记录列表
|
//请求使用记录列表
|
||||||
@ -54,27 +57,34 @@ class ValueAddedServicesRecordLogic extends BaseGetXController {
|
|||||||
pageNo: buyPageNo,
|
pageNo: buyPageNo,
|
||||||
);
|
);
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
state.useRecordList.value = entity.data!.useRecordList!;
|
if (load) {
|
||||||
|
state.useRecordList.addAll(entity.data!.recordList!);
|
||||||
|
} else {
|
||||||
|
state.useRecordList.value = entity.data!.recordList!;
|
||||||
|
}
|
||||||
state.useRecordList.refresh();
|
state.useRecordList.refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String getBuyRecordListTitle(RecordItem itemData) {
|
void getBuyAndUserInfoStr(UseItemData itemData) {
|
||||||
if (itemData.type == UseRecordListArg.sms['type']) {
|
if (itemData.type == UseRecordListArg.sms['type']) {
|
||||||
return '${itemData.smsCount}条';
|
state.buyCountStr.value = '${itemData.smsCount}条';
|
||||||
|
state.useCountStr.value =
|
||||||
|
'${itemData.receiverAccount ?? ""} ${itemData.consCount}条';
|
||||||
|
state.buyAmountStr.value = '¥${itemData.amount}';
|
||||||
} else if (itemData.type == UseRecordListArg.email['type']) {
|
} else if (itemData.type == UseRecordListArg.email['type']) {
|
||||||
return '${itemData.emailCount}封';
|
state.buyCountStr.value = '${itemData.emailCount}封';
|
||||||
|
state.useCountStr.value =
|
||||||
|
'${itemData.receiverAccount ?? ""} ${itemData.consCount}封';
|
||||||
|
state.buyAmountStr.value = '¥${itemData.amount}';
|
||||||
} else if (itemData.type == UseRecordListArg.cloudauth['type']) {
|
} else if (itemData.type == UseRecordListArg.cloudauth['type']) {
|
||||||
return '实名认证/${itemData.cloudauthCount}次';
|
state.buyCountStr.value = '实名认证/${itemData.cloudauthCount}次';
|
||||||
|
state.useCountStr.value =
|
||||||
|
'${itemData.lockName ?? ""} ${itemData.realName ?? ""}';
|
||||||
|
state.buyAmountStr.value = '¥${itemData.amount}';
|
||||||
}
|
}
|
||||||
return '';
|
state.buyCountStr.refresh();
|
||||||
}
|
state.useCountStr.refresh();
|
||||||
|
state.buyAmountStr.refresh();
|
||||||
@override
|
|
||||||
void onReady() {
|
|
||||||
super.onReady();
|
|
||||||
|
|
||||||
loadBuyRecordList(false);
|
|
||||||
loadUseRecordList(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,6 @@ import 'package:easy_refresh/easy_refresh.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_entity.dart';
|
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_logic.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_logic.dart';
|
||||||
import 'package:star_lock/tools/noData.dart';
|
import 'package:star_lock/tools/noData.dart';
|
||||||
@ -19,85 +18,84 @@ class ValueAddedServicesRecordPage extends StatefulWidget {
|
|||||||
|
|
||||||
class _ValueAddedServicesRecordPageState
|
class _ValueAddedServicesRecordPageState
|
||||||
extends State<ValueAddedServicesRecordPage> {
|
extends State<ValueAddedServicesRecordPage> {
|
||||||
|
final ValueAddedServicesRecordLogic logic =
|
||||||
|
Get.put(ValueAddedServicesRecordLogic());
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return GetBuilder<ValueAddedServicesRecordLogic>(
|
return Scaffold(
|
||||||
init: ValueAddedServicesRecordLogic(),
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
builder: (ValueAddedServicesRecordLogic logic) {
|
appBar: TitleAppBar(
|
||||||
return Scaffold(
|
barTitle: '记录'.tr,
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
haveBack: true,
|
||||||
appBar: TitleAppBar(
|
backgroundColor: AppColors.mainColor,
|
||||||
barTitle: '记录'.tr,
|
),
|
||||||
haveBack: true,
|
body: DefaultTabController(
|
||||||
backgroundColor: AppColors.mainColor),
|
length: 2,
|
||||||
body: DefaultTabController(
|
child: Column(
|
||||||
length: 2,
|
children: [
|
||||||
child: Column(
|
TabBar(
|
||||||
children: [
|
tabs: [tabTextItem('购买记录'.tr), tabTextItem('使用记录'.tr)],
|
||||||
TabBar(
|
indicatorColor: AppColors.mainColor,
|
||||||
tabs: [tabTextItem('购买记录'.tr), tabTextItem('使用记录'.tr)],
|
indicatorSize: TabBarIndicatorSize.label,
|
||||||
indicatorColor: AppColors.mainColor,
|
labelColor: AppColors.mainColor,
|
||||||
indicatorSize: TabBarIndicatorSize.label,
|
unselectedLabelColor: AppColors.darkGrayTextColor,
|
||||||
labelColor: AppColors.mainColor,
|
|
||||||
unselectedLabelColor: AppColors.darkGrayTextColor,
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: Obx(() => TabBarView(children: [
|
|
||||||
_PurchaseRecords(
|
|
||||||
buyRecordList: logic.state.buyRecordList.value,
|
|
||||||
),
|
|
||||||
_UseRecordsTable(
|
|
||||||
useRecordList: logic.state.useRecordList.value,
|
|
||||||
),
|
|
||||||
])),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
Expanded(
|
||||||
});
|
child: TabBarView(
|
||||||
|
children: [
|
||||||
|
_PurchaseRecords(
|
||||||
|
buyRecordList: logic.state.buyRecordList, logic: logic),
|
||||||
|
_UseRecordsTable(
|
||||||
|
useRecordList: logic.state.useRecordList, logic: logic),
|
||||||
|
],
|
||||||
|
)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Widget tabTextItem(String tabText) {
|
Widget tabTextItem(String tabText) {
|
||||||
return Container(
|
return Container(
|
||||||
margin: EdgeInsets.symmetric(vertical: 16.h),
|
margin: EdgeInsets.symmetric(vertical: 16.h),
|
||||||
child: Text(
|
child: Text(
|
||||||
tabText,
|
tabText,
|
||||||
style: TextStyle(fontSize: 24.sp),
|
style: TextStyle(fontSize: 24.sp),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 购买记录
|
// 购买记录
|
||||||
class _PurchaseRecords extends StatelessWidget {
|
class _PurchaseRecords extends StatelessWidget {
|
||||||
const _PurchaseRecords({required this.buyRecordList});
|
const _PurchaseRecords({required this.buyRecordList, required this.logic});
|
||||||
final List buyRecordList;
|
final List<UseItemData> buyRecordList;
|
||||||
|
final ValueAddedServicesRecordLogic logic;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return GetBuilder<ValueAddedServicesRecordLogic>(
|
return EasyRefresh(
|
||||||
builder: (ValueAddedServicesRecordLogic logic) {
|
|
||||||
return EasyRefresh(
|
|
||||||
onRefresh: () async {
|
onRefresh: () async {
|
||||||
logic.loadBuyRecordList(false);
|
logic.loadBuyRecordList(false);
|
||||||
},
|
},
|
||||||
onLoad: () async {
|
onLoad: () async {
|
||||||
logic.loadBuyRecordList(true);
|
logic.loadBuyRecordList(true);
|
||||||
},
|
},
|
||||||
child: buyRecordList.isNotEmpty
|
child: Obx(
|
||||||
? ListView.builder(
|
() => buyRecordList.isNotEmpty
|
||||||
itemCount: buyRecordList.length,
|
? ListView.builder(
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemCount: buyRecordList.length,
|
||||||
return _recordKeyItem(buyRecordList[index], logic);
|
itemBuilder: (BuildContext context, int index) {
|
||||||
})
|
logic.getBuyAndUserInfoStr(buyRecordList[index]);
|
||||||
: NoData(),
|
return _recordKeyItem(buyRecordList[index], logic);
|
||||||
);
|
})
|
||||||
});
|
: NoData(),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _recordKeyItem(
|
Widget _recordKeyItem(
|
||||||
RecordItem itemData, ValueAddedServicesRecordLogic logic) {
|
UseItemData itemData, ValueAddedServicesRecordLogic logic) {
|
||||||
return Container(
|
return Container(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
margin: EdgeInsets.symmetric(horizontal: 20.w, vertical: 10.h),
|
margin: EdgeInsets.symmetric(horizontal: 20.w, vertical: 10.h),
|
||||||
@ -115,7 +113,7 @@ class _PurchaseRecords extends StatelessWidget {
|
|||||||
fontWeight: FontWeight.bold),
|
fontWeight: FontWeight.bold),
|
||||||
),
|
),
|
||||||
Expanded(child: Container()),
|
Expanded(child: Container()),
|
||||||
Text('¥${itemData.amount}',
|
Text(logic.state.buyAmountStr.value,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 24.sp,
|
fontSize: 24.sp,
|
||||||
color: AppColors.blackColor,
|
color: AppColors.blackColor,
|
||||||
@ -123,7 +121,7 @@ class _PurchaseRecords extends StatelessWidget {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 8.h),
|
SizedBox(height: 8.h),
|
||||||
Text(logic.getBuyRecordListTitle(itemData),
|
Text(logic.state.buyCountStr.value,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 22.sp, color: AppColors.darkGrayTextColor)),
|
fontSize: 22.sp, color: AppColors.darkGrayTextColor)),
|
||||||
],
|
],
|
||||||
@ -134,32 +132,33 @@ class _PurchaseRecords extends StatelessWidget {
|
|||||||
|
|
||||||
// 使用记录
|
// 使用记录
|
||||||
class _UseRecordsTable extends StatelessWidget {
|
class _UseRecordsTable extends StatelessWidget {
|
||||||
const _UseRecordsTable({required this.useRecordList});
|
const _UseRecordsTable({required this.useRecordList, required this.logic});
|
||||||
final List useRecordList;
|
final List<UseItemData> useRecordList;
|
||||||
|
final ValueAddedServicesRecordLogic logic;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return GetBuilder<ValueAddedServicesRecordLogic>(
|
return EasyRefresh(
|
||||||
builder: (ValueAddedServicesRecordLogic logic) {
|
|
||||||
return EasyRefresh(
|
|
||||||
onRefresh: () async {
|
onRefresh: () async {
|
||||||
logic.loadUseRecordList(false);
|
logic.loadUseRecordList(false);
|
||||||
},
|
},
|
||||||
onLoad: () async {
|
onLoad: () async {
|
||||||
logic.loadUseRecordList(true);
|
logic.loadUseRecordList(true);
|
||||||
},
|
},
|
||||||
child: useRecordList.isNotEmpty
|
child: Obx(
|
||||||
? ListView.builder(
|
() => useRecordList.isNotEmpty
|
||||||
itemCount: useRecordList.length,
|
? ListView.builder(
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemCount: useRecordList.length,
|
||||||
return _recordKeyItem(useRecordList[index]);
|
itemBuilder: (BuildContext context, int index) {
|
||||||
})
|
logic.getBuyAndUserInfoStr(useRecordList[index]);
|
||||||
: NoData(),
|
return _recordKeyItem(useRecordList[index], logic);
|
||||||
);
|
})
|
||||||
});
|
: NoData(),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _recordKeyItem(UseItemData itemData) {
|
Widget _recordKeyItem(
|
||||||
|
UseItemData itemData, ValueAddedServicesRecordLogic logic) {
|
||||||
return Container(
|
return Container(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
margin: EdgeInsets.symmetric(horizontal: 20.w, vertical: 10.h),
|
margin: EdgeInsets.symmetric(horizontal: 20.w, vertical: 10.h),
|
||||||
@ -170,7 +169,7 @@ class _UseRecordsTable extends StatelessWidget {
|
|||||||
Row(
|
Row(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text(
|
Text(
|
||||||
'${itemData.lockName ?? ""} ${itemData.realName ?? ""}',
|
logic.state.useCountStr.value,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 24.sp,
|
fontSize: 24.sp,
|
||||||
color: AppColors.blackColor,
|
color: AppColors.blackColor,
|
||||||
|
|||||||
@ -1,7 +1,12 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart';
|
||||||
|
|
||||||
class ValueAddedServicesRecordState {
|
class ValueAddedServicesRecordState {
|
||||||
int index = 0;
|
int index = 0;
|
||||||
var buyRecordList = [].obs; //购买记录列表
|
RxList<UseItemData> buyRecordList = <UseItemData>[].obs; //购买记录列表
|
||||||
var useRecordList = [].obs; //使用记录列表
|
RxList<UseItemData> useRecordList = <UseItemData>[].obs; //使用记录列表
|
||||||
|
RxString buyCountStr = ''.obs;
|
||||||
|
RxString useCountStr = ''.obs;
|
||||||
|
RxString receiverUserStr = ''.obs;
|
||||||
|
RxString buyAmountStr = ''.obs;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,10 +36,8 @@ import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList/keyList
|
|||||||
import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart';
|
import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart';
|
||||||
import 'package:star_lock/mine/mineSet/mineSet/weChatQRCodeEntity.dart';
|
import 'package:star_lock/mine/mineSet/mineSet/weChatQRCodeEntity.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFeaturesWeb/advancedFeaturesWeb_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/advancedFeaturesWeb/advancedFeaturesWeb_entity.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_entity.dart';
|
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_entity.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRealName/face_authentication_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRealName/face_authentication_entity.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/buy_record_list_entity.dart';
|
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_entity.dart';
|
||||||
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_entity.dart';
|
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_entity.dart';
|
||||||
@ -1001,8 +999,7 @@ class ApiRepository {
|
|||||||
required int endTime,
|
required int endTime,
|
||||||
required int remoteUnlockSwitch,
|
required int remoteUnlockSwitch,
|
||||||
required int keyRight,
|
required int keyRight,
|
||||||
required bool isShowNetworkErrorMsg
|
required bool isShowNetworkErrorMsg}) async {
|
||||||
}) async {
|
|
||||||
final res = await apiProvider.batchSendKey(
|
final res = await apiProvider.batchSendKey(
|
||||||
lockIds,
|
lockIds,
|
||||||
createUser,
|
createUser,
|
||||||
@ -1017,8 +1014,7 @@ class ApiRepository {
|
|||||||
endTime,
|
endTime,
|
||||||
remoteUnlockSwitch,
|
remoteUnlockSwitch,
|
||||||
keyRight,
|
keyRight,
|
||||||
isShowNetworkErrorMsg
|
isShowNetworkErrorMsg);
|
||||||
);
|
|
||||||
return KeyDetailEntity.fromJson(res.body);
|
return KeyDetailEntity.fromJson(res.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2114,7 +2110,7 @@ class ApiRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取购买记录
|
// 获取购买记录
|
||||||
Future<AdvancedFunctionRecordEntity> getBuyRecordList({
|
Future<UseRecordListEntity> getBuyRecordList({
|
||||||
required String type,
|
required String type,
|
||||||
required int pageNo,
|
required int pageNo,
|
||||||
required int recordType,
|
required int recordType,
|
||||||
@ -2122,7 +2118,7 @@ class ApiRepository {
|
|||||||
}) async {
|
}) async {
|
||||||
final res =
|
final res =
|
||||||
await apiProvider.getBuyRecordList(type, recordType, pageNo, pageSize);
|
await apiProvider.getBuyRecordList(type, recordType, pageNo, pageSize);
|
||||||
return AdvancedFunctionRecordEntity.fromJson(res.body);
|
return UseRecordListEntity.fromJson(res.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取使用记录
|
// 获取使用记录
|
||||||
@ -2148,11 +2144,11 @@ class ApiRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 检测实名认证是否支持开启
|
// 检测实名认证是否支持开启
|
||||||
Future<AdvancedFunctionRecordEntity> keyCheckFace({
|
Future<ValueAddedServicesHighFunctionEntity> keyCheckFace({
|
||||||
required int lockId,
|
required int lockId,
|
||||||
}) async {
|
}) async {
|
||||||
final res = await apiProvider.keyCheckFace(lockId);
|
final res = await apiProvider.keyCheckFace(lockId);
|
||||||
return AdvancedFunctionRecordEntity.fromJson(res.body);
|
return ValueAddedServicesHighFunctionEntity.fromJson(res.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取人脸认证certifyId
|
// 获取人脸认证certifyId
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user