| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- import 'dart:convert';
- import 'package:bbyyy/beans/goods_bean_entity.dart';
- import 'package:bbyyy/beans/message_bean_entity.dart';
- import 'package:bbyyy/beans/my_shop_bean_entity.dart';
- import 'package:bbyyy/beans/user_vp_bean_entity.dart';
- import 'package:bbyyy/https/MyDio.dart';
- import 'package:bbyyy/msgDB/my_msg_db.dart';
- import 'package:bbyyy/my_tools/const.dart';
- import 'package:bbyyy/my_tools/dims.dart';
- import 'package:bbyyy/my_tools/ev.dart';
- import 'package:bbyyy/my_tools/event_bus.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/chat_page/chat_data.dart';
- import 'package:bbyyy/paegs/chat_page/chat_page_view.dart';
- import 'package:flutter/cupertino.dart';
- import 'package:flutter/material.dart';
- import 'package:pull_to_refresh/pull_to_refresh.dart';
- import 'package:scroll_to_index/scroll_to_index.dart';
- class ChatPage extends StatefulWidget {
- MyShopBeanDataData chatWith;
- GoodsBeanDataData goods;
- ChatPage(this.chatWith, this.goods) {
- ChatData().chatWith = chatWith;
- }
- @override
- _ChatPageState createState() => _ChatPageState();
- }
- class _ChatPageState extends State<ChatPage> {
- FocusNode _focusNode = FocusNode();
- AutoScrollController _scrollController;
- RefreshController _refreshController =
- RefreshController(initialRefresh: true);
- int page = 1;
- List<MessageBeanContent> msges = [];
- @override
- void initState() {
- super.initState();
- ChatData().context = context;
- _scrollController = AutoScrollController(
- viewportBoundaryGetter: () =>
- Rect.fromLTRB(0, 0, 0, MediaQuery.of(context).padding.bottom),
- axis: Axis.vertical);
- EventBus().on('hasNewMsg', (arg) {
- queryMessage();
- });
- watermarkQuery();
- }
- @override
- Widget build(BuildContext context) {
- return GestureDetector(
- onTap: () {
- MyTools().hideKeyboard(context);
- },
- behavior: HitTestBehavior.translucent,
- child: Scaffold(
- body: Column(
- children: [
- MyViews().myAppBar(
- widget.chatWith.userUid == 0 ? '客服' : widget.chatWith.userName,
- context, []),
- // ChatPageView().goodsInfo(widget.goods),
- Expanded(
- child: Container(
- color: MyColors.cf2f2f2,
- child: SmartRefresher(
- enablePullDown: true,
- onLoading: onLoading,
- onRefresh: onRefresh,
- footer: CustomFooter(
- loadStyle: LoadStyle.ShowWhenLoading,
- builder: (context, mode) {
- if (mode == LoadStatus.loading) {
- return Container(
- height: 60.0,
- child: Container(
- height: 20.0,
- width: 20.0,
- child: CupertinoActivityIndicator(),
- ),
- );
- } else
- return Container();
- },
- ),
- enablePullUp: true,
- controller: _refreshController,
- child: Scrollable(
- controller: _scrollController,
- axisDirection: AxisDirection.up,
- viewportBuilder: (context, offset) {
- return ExpandedViewport(
- offset: offset,
- axisDirection: AxisDirection.up,
- slivers: <Widget>[
- SliverExpanded(),
- SliverList(
- delegate: SliverChildBuilderDelegate(
- (c, i) =>
- ChatPageView().chatItems(msges[i], context),
- childCount: msges.length),
- )
- ],
- );
- },
- ),
- ),
- ),
- ),
- ChatPageView().inputBox(context, _focusNode)
- ],
- ),
- ),
- );
- }
- void onLoading() {
- page++;
- queryMessage();
- }
- void onRefresh() {
- page = 1;
- queryMessage();
- }
- queryMessage() async {
- MsgDB msgDB =
- MsgDB('table${MyCookie().getUID()}_${widget.chatWith.userUid}');
- if (!msgDB.isTableExits) {
- await msgDB.open();
- }
- List<Map<String, dynamic>> maps = await msgDB.queryTableData(page, 10);
- if (page == 1) {
- msges.clear();
- }
- maps.forEach((element) {
- MessageBeanContent msg =
- MessageBeanContent().fromJson(json.decode(json.encode(element)));
- msges.add(msg);
- ChatData().msges = msges;
- });
- endRe(_refreshController);
- setState(() {});
- }
- @override
- void dispose() {
- super.dispose();
- ChatData().clean();
- MyCookie().plugin.removeWatermark();
- MyCookie().prefs.setString(
- '${MyCookie().getUID()}_${widget.chatWith.userUid}',
- DateTime.now().toString().substring(0, 19));
- }
- void watermarkQuery() {
- print('asdasdasd---------------${json.encode(widget.chatWith)}');
- MyDio().query({
- "key": "user_vp",
- "filters": {
- "conditions": [
- "user_uid == ${widget.chatWith.userUid}",
- "vp_key == $vpKeyChatWaterMark"
- ]
- },
- "dims": userVpDims,
- "paging": [1, 2000]
- }, (response, hasError) {
- UserVpBeanEntity entity =
- UserVpBeanEntity().fromJson(json.decode(response.data.toString()));
- if (entity.data.data.length != 0) {
- MyCookie().plugin.addWatermark(context, "${MyCookie().getUID()}",
- rowCount: 4, columnCount: 8);
- print('asdfnfansfionasifnioasfn');
- } else {
- watermarkQuery2();
- print('41515115151');
- }
- setState(() {});
- }, (error) {});
- }
- void watermarkQuery2() {
- MyDio().query({
- "key": "user_vp",
- "filters": {
- "conditions": [
- "user_uid == ${MyCookie().getUID()}",
- "vp_key == $vpKeyChatWaterMark"
- ]
- },
- "dims": userVpDims,
- "paging": [1, 2000]
- }, (response, hasError) {
- UserVpBeanEntity entity =
- UserVpBeanEntity().fromJson(json.decode(response.data.toString()));
- if (entity.data.data.length != 0) {
- MyCookie().plugin.addWatermark(context, "${MyCookie().getUID()}",
- rowCount: 4, columnCount: 8);
- print('asdfnfansfionasifnioasfn');
- } else {
- print('41515115151');
- }
- setState(() {});
- }, (error) {});
- }
- }
|