提交 653c6632 authored 作者: maodou's avatar maodou

Merge remote-tracking branch 'origin/test' into test

assets/images/2.0x/check_box_select.png

528 Bytes | W: | H:

assets/images/2.0x/check_box_select.png

900 Bytes | W: | H:

assets/images/2.0x/check_box_select.png
assets/images/2.0x/check_box_select.png
assets/images/2.0x/check_box_select.png
assets/images/2.0x/check_box_select.png
  • 2-up
  • Swipe
  • Onion skin
assets/images/check_box_select.png

249 Bytes | W: | H:

assets/images/check_box_select.png

432 Bytes | W: | H:

assets/images/check_box_select.png
assets/images/check_box_select.png
assets/images/check_box_select.png
assets/images/check_box_select.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -42,6 +42,10 @@ post_install do |installer|
'$(inherited)',
## dart: PermissionGroup.microphone
'PERMISSION_MICROPHONE=1',
'PERMISSION_CAMERA=1',
'PERMISSION_PHOTOS=1',
'PERMISSION_SPEECH_RECOGNIZER=1',
'PERMISSION_MEDIA_LIBRARY=1',
]
end
end
......
......@@ -139,6 +139,6 @@ SPEC CHECKSUMS:
tobias: 22f69183b14af82a2ac8ff698af084c352744e5f
WechatOpenSDK-XCFramework: acdeeda129efbef9532bca8a10c24e1b4b8c7d69
PODFILE CHECKSUM: d88b567994d32cfdf2f8417e66666d472921c85e
PODFILE CHECKSUM: 293dca100fbb3eb6a866f640cf85127844630abc
COCOAPODS: 1.11.2
......@@ -2,6 +2,10 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPhotoLibraryUsageDescription</key>
<string>紫荆数智学堂请求在您使用期间获取您的相册权限以便更改用户头像或上传笔记</string>
<key>NSCameraUsageDescription</key>
<string>紫荆数智学堂需要使用相机权限进行拍照</string>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
......@@ -40,7 +44,7 @@
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSMicrophoneUsageDescription</key>
<string>金云书需要使用麦克风进行录音</string>
<string>荆数智学堂需要使用麦克风进行录音</string>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchStoryboardName</key>
......
......@@ -43,7 +43,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
void addCart(String bookId) async {
final result = await ShopAPI.addCart(bookId: bookId);
if(result){
Toast.show('添加购物车成功');
Toast.show('加入书架成功');
}
}
......@@ -73,7 +73,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
}
bool result = await CommonAPI.love(
bookId: bookId, love: isCollection.toString());
print('================================$result');
Console.log('================================$result');
if (result) {
getBookDetails();
}
......
......@@ -41,12 +41,13 @@ class BookPayController extends GetxController {
// late double finalPrice = 0.00;
Decimal finalPrice = Decimal.zero;
String noticeText = '';
@override
void onReady() {
_getCreditPoints(price: originalPrice.toString(),couponRecId: useCouponModel.couponRecId.toString());
_getShow();
computeFinalPrice();
_getCouponNumber();
super.onReady();
}
......@@ -54,7 +55,7 @@ class BookPayController extends GetxController {
/// 使用优惠券
void setUseCoupon(CouponModel model){
useCouponModel = model;
print('使用优惠券。。。。。。。。。。。。。。。。${model.couponRecId}');
Console.log('使用优惠券。。。。。。。。。。。。。。。。${model.couponRecId}');
// 使用优惠券后重新获取积分
_getCreditPoints(price: originalPrice.toString(), couponRecId: useCouponModel.couponRecId.toString());
}
......@@ -83,6 +84,7 @@ class BookPayController extends GetxController {
model.selected = false;
}
}
// computeFinalPrice();
update();
}
......@@ -107,6 +109,7 @@ class BookPayController extends GetxController {
/// 是否展示优惠券 和积分使用 模型
void _getShow () async {
showModel = await ShopAPI.show();
computeFinalPrice();
update();
}
......@@ -125,11 +128,11 @@ class BookPayController extends GetxController {
if (model.status == 1){
if (model.selected == true){
price = price + Decimal.parse(model.vipPrice??'0.00');
print('==============11111111111==================$price');
Console.log('==============11111111111==================$price');
}
}
}
print('================================$price');
Console.log('================================$price');
return price.toDouble();
}
......@@ -146,6 +149,13 @@ class BookPayController extends GetxController {
if(finalPrice.toDouble() < 0){
finalPrice = Decimal.zero;
}
if(finalPrice.toDouble()* 100 - double.parse(showModel.membersBean.toString()) > 0){
noticeText = '紫荆币不足,需至少充值${finalPrice.toDouble()* 100 - double.parse(showModel.membersBean.toString())}';
}
else{
noticeText = '';
}
update();
}
......
......@@ -100,7 +100,7 @@ class _BookPayPageState extends State<BookPayPage> {
onTap: (){
controller.setPayModel(model);
},
child: BuildPayWay(model:model,));
child: BuildPayWay(model:model,controller: controller,));
},
itemCount: controller.pays.length,
),
......@@ -108,7 +108,9 @@ class _BookPayPageState extends State<BookPayPage> {
],
),
),
bottomNavigationBar: SafeArea(child:BuildPayCount(
bottomNavigationBar: SafeArea(
bottom: false,
child:BuildPayCount(
payTap: (){
Console.log('--------------支付------------------');
controller.createOrder();
......@@ -124,6 +126,7 @@ class _BookPayPageState extends State<BookPayPage> {
bottom: 50.w,
right: 0.w,
top: 0.w,
child: SafeArea(
child: GestureDetector(
onTap: (){
controller.show();
......@@ -143,6 +146,7 @@ class _BookPayPageState extends State<BookPayPage> {
),
),
),
),
):const SizedBox()
],
)
......
......@@ -17,8 +17,8 @@ class BuildPayCount extends StatelessWidget {
return GetBuilder<BookPayController>(
init: BookPayController(buy: [],context: context),
builder:(controller)=> Container(
padding: EdgeInsets.symmetric(horizontal: 15.w),
height: 55.w,
padding: EdgeInsets.only(left: 15.w,right: 15.w,bottom: Screen.bottomBar),
// height: 55.w + MediaQuery.of(context).padding.bottom,
color: Colors.white,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
......@@ -46,11 +46,15 @@ class BuildPayCount extends StatelessWidget {
GestureDetector(
onTap: payTap,
child: Container(
margin: EdgeInsets.symmetric(vertical: 10.w),
width: 85.w,
height: 35.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.w),
borderRadius: BorderRadius.circular(17.5.w),
color: AppTheme.primary
),
padding: EdgeInsets.symmetric(horizontal:13.5.w,vertical: 8.w),
alignment: Alignment.center,
// padding: EdgeInsets.symmetric(horizontal:13.5.w,vertical: 8.w),
child: Text('确认支付',style: TextStyle(fontSize: 14.w,fontWeight: Fonts.medium,color: Colors.white),),
),
)
......
......@@ -2,9 +2,11 @@ part of book_pay;
class BuildPayWay extends StatelessWidget {
final PayModel model;
final BookPayController? controller;
const BuildPayWay({
Key? key,
required this.model
required this.model,
this.controller
}) : super(key: key);
@override
......@@ -30,6 +32,10 @@ class BuildPayWay extends StatelessWidget {
Text(model.name,style: TextStyle(fontSize: 14.w,color: Colours.c3,height: 1.1)),
],
),
Row(
children: [
model.type == 3&& model.selected ?Text(controller !=null?controller!.noticeText:'',style: TextStyle(fontSize: 11.w,color: AppTheme.primary,height: 1.1)):const SizedBox(),
model.type == 3&& model.selected ?Gaps.hGaps10:const SizedBox(),
SizedBox(
// color: Colors.cyan,
width:15.w,
......@@ -37,6 +43,8 @@ class BuildPayWay extends StatelessWidget {
child: Image.asset(model.selected?'assets/images/pay_check.png':'assets/images/pay_uncheck.png'),
)
],
)
],
),
),
Container(
......
......@@ -34,7 +34,7 @@ class _BookShopPageState extends State<BookShopPage> {
itemCount: controller.carts.length,
),
),
BuildCounter(controller: controller,)
SafeArea(child: BuildCounter(controller: controller,))
],
),
),
......
......@@ -117,7 +117,7 @@ class _ReadInputDiscussState extends State<ReadInputDiscuss> {
),
),
Container(
color: Colors.red,
// color: Colors.red,
child: MediaQuery.removePadding(
context: context,
removeTop: true,
......
......@@ -34,39 +34,51 @@ class MsgPage extends StatelessWidget {
controller.read(model.id.toString());
if(model.type == 1){
final result = await context.pushNamed(Routes.order);
if (result == true){
controller.onRefresh();
}
// final orderInfo = await controller.getOrderInfo(model.urlId?.orderNum??'');
// // 待支付
// if (orderInfo.status == 1){
// // 书籍订单
// if (orderInfo.types ==1){
// final result = await context.pushNamed(Routes.orderAwaiting,
// queryParameters: {'orderNum': model.urlId?.orderNum.toString()});
// final result = await context.pushNamed(Routes.order);
// if (result == true){
// controller.onRefresh();
// }
// }
// // 充值订单
// else {
// final result = await context.pushNamed(Routes.orderCoinAwaiting,
// queryParameters: {'orderNum': model.urlId?.orderNum.toString()});
// if (result == true){
// controller.onRefresh();
// }
// }
//
// }
// // 已支付
// else if (orderInfo.status ==3){
//
// }
// // 已退款
// else if (orderInfo.status == 4){
//
// }
final orderInfo = await controller.getOrderInfo(model.urlId?.orderNum??'');
// 待支付
if (orderInfo.status == 1){
// 书籍订单
if (orderInfo.types ==1){
final result = await context.pushNamed(Routes.orderAwaiting,
queryParameters: {'orderNum': model.urlId?.orderNum.toString()});
if (result == true){
controller.onRefresh();
}
}
// 充值订单
else {
final result = await context.pushNamed(Routes.orderCoinAwaiting,
queryParameters: {'orderNum': model.urlId?.orderNum.toString()});
if (result == true){
controller.onRefresh();
}
}
}
// 已支付
else if (orderInfo.status ==3){
if (orderInfo.types == 1){
final result = await context.pushNamed(Routes.orderCompleted,
queryParameters: {'orderNum': model.urlId?.orderNum.toString()});
if (result == true){
controller.onRefresh();
}
}
}
// 已退款
else if (orderInfo.status == 4){
if (orderInfo.types == 1){
final result = await context.pushNamed(Routes.orderRefunded,
queryParameters: {'orderNum': model.urlId?.orderNum.toString()});
if (result == true){
controller.onRefresh();
}
}
}
///TODO:
}else if (model.type == 2){
......@@ -109,4 +121,6 @@ class MsgPage extends StatelessWidget {
),
);
}
}
......@@ -340,6 +340,7 @@ class _CacheInterceptor extends Interceptor {
// 在发起请求之前,检查缓存是否存在有效数据
final cachedFile = await DefaultCacheManager().getFileFromCache(options.uri.toString());
if (cachedFile != null && cachedFile.validTill.isAfter(DateTime.now())) {
Console.log('--------------使用缓存数据------------------');
// 如果缓存有效,直接返回缓存数据
final cachedData = await cachedFile.file.readAsBytes();
final decodedData = utf8.decode(cachedData); // 将字节列表解码为字符串
......
......@@ -38,7 +38,7 @@ abstract class Tools {
static Future<String> getDirectory() async {
// getTemporaryDirectory
final directory = await getExternalStorageDirectory();
final directory = await getTemporaryDirectory();
return directory!.path;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论