| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import 'dart:convert';
- import 'package:bbyyy/beans/ad_bean_entity.dart';
- import 'package:bbyyy/https/MyDio.dart';
- import 'package:bbyyy/my_tools/dims.dart';
- import 'package:bbyyy/my_tools/my_colors.dart';
- import 'package:bbyyy/my_tools/my_cookie.dart';
- import 'package:bbyyy/my_tools/my_tools.dart';
- import 'package:bbyyy/my_tools/my_views.dart';
- import 'package:bbyyy/paegs/ad_details_page/ad_details_page.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_slidable/flutter_slidable.dart';
- import 'package:flutter_svg/svg.dart';
- import 'package:pull_to_refresh/pull_to_refresh.dart';
- import 'new_ad_page.dart';
- class AdvertisingPage extends StatefulWidget {
- @override
- _AdvertisingPageState createState() => _AdvertisingPageState();
- }
- class _AdvertisingPageState extends State<AdvertisingPage> {
- RefreshController controller = RefreshController(initialRefresh: true);
- List<AdBeanDataData> data = [];
- int page = 1;
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- body: Column(
- children: [
- MyViews().myAppBar('广告', context, [
- IconButton(
- icon: Icon(Icons.add_circle_outline),
- onPressed: () {
- MyTools().toPage(context, NewAdPage(null), (then) {
- page = 1;
- controller.requestRefresh();
- });
- }),
- ]),
- Expanded(
- child: SmartRefresher(
- onRefresh: onRefresh,
- onLoading: onLoading,
- enablePullUp: true,
- enablePullDown: true,
- controller: controller,
- child: data.length == 0
- ? SingleChildScrollView(child: noData())
- : GridView.builder(
- gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
- crossAxisCount: 2,
- childAspectRatio: 164 / 260,
- mainAxisSpacing: 11,
- crossAxisSpacing: 15),
- itemCount: data.length,
- padding: EdgeInsets.all(16),
- itemBuilder: (context, index) {
- return GestureDetector(
- child: advertisingItems(context, data[index]),
- onTap: () {
- MyTools().toPage(
- context,
- AdDetailsPage(
- data[index],
- canBeModified: true,
- ), (then) {
- page = 1;
- controller.requestRefresh();
- });
- },
- behavior: HitTestBehavior.translucent,
- );
- }),
- ),
- ),
- ],
- ),
- );
- }
- void onRefresh() {
- page = 1;
- checkMyAd();
- }
- void onLoading() {
- page++;
- checkMyAd();
- }
- checkMyAd() {
- MyDio().query({
- "key": "ad",
- "filters": {
- "conditions": ['user_uid == ${MyCookie().getUID()}']
- },
- "dims": adDims,
- "paging": [page, 20],
- "order_by": ["create_time,DESC"]
- }, (response, hasError) {
- if (!hasError) {
- AdBeanEntity entity =
- AdBeanEntity().fromJson(json.decode(response.data.toString()));
- if (page == 1) {
- data.clear();
- }
- data.addAll(entity.data.data);
- setState(() {});
- }
- endRe(controller);
- }, (error) {});
- }
- }
|