upload_img_provider.dart 4.36 KB
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/models/qiniu_info_model.dart';
import 'package:one_key/models/upload_img_model.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/utils/utils.dart';

// class UploadImageStore extends UploadImageProvider{

// }

class UploadImageProvider extends ChangeNotifier {
  List<UploadImgModel> imageList = []; //图片信息列表
  List<String?> imageQiniuUrlList = []; //七牛云地址列表
  QiniuInfoSunModel? qiniuInfoSunModel;
  UploadImgModel touxiang = UploadImgModel(); //头像
  UploadImgModel erweima = UploadImgModel(); //二维码
  UploadImgModel mentou = UploadImgModel(); //店铺信息----门头照片
  UploadImgModel dish = UploadImgModel(); //菜品
  UploadImgModel firstImage = UploadImgModel(); //预订安排首图
  UploadImgModel logo = UploadImgModel(); //预订安排logo

  double imgSizefirstImage = 282;
  double imgSizeTouxiang = 76;
  double imgSizeErweima = 22;
  double imgSizeMenTou = 64;
  List<UploadImgModel> imageListDenvironment = []; //环境信息列表
  List<UploadImgModel> imageListFront = []; //门头信息列表
  List<UploadImgModel> tableImageList = []; //桌子管理图片信息列表
  List<UploadImgModel> feastRemarkImageList = []; //宴会备注图片信息列表
  // List<UploadImgModel> feastRemarkXtImageList = []; //宴会备注图片信息列表----选台
  List<UploadImgModel> feastRemarkDjImageList = []; //宴会备注图片信息列表----订金
  List<UploadImgModel> feastRemarkContractImageList = []; //宴会备注图片信息列表----合同
  List<UploadImgModel> feastRemarkInvoiceImageList = []; //宴会备注图片信息列表----发票

  UploadImgModel storeImage1 = UploadImgModel(); //预订安排介绍
  UploadImgModel storeImage2 = UploadImgModel(); //预订安排介绍
  UploadImgModel storeImage3 = UploadImgModel(); //预订安排介绍
  UploadImgModel storeImage4 = UploadImgModel(); //预订安排介绍
  UploadImgModel storeImage5 = UploadImgModel(); //预订安排介绍
  UploadImgModel storeImage6 = UploadImgModel(); //预订安排介绍
  // List<UploadImgModel> wineImageList = []; //新建存酒

  int countUpload = 0;

  Map<String, UploadImgModel> _data = {};

  void setDynamicValue(String key, UploadImgModel value) {
    _data[key] = value;
  }

  UploadImgModel? getDynamicValue(String key) {
    return _data[key];
  }

  UploadImageProvider() {
    touxiang.process = 0.01;
    erweima.process = 0.01;
    dish.process = 0.01;
  }

  ///  删除七牛图片资源
  deleteImg(BuildContext context, String delImgs,
      {isShowLoading = true, bool needToast = true}) async {
    Map<String, String> params = {
      'url': delImgs.replaceAll(Constant.qiniuUrl, '')
    };
    try {
      BaseResp<dynamic> baseResp = await DioUtil().request<dynamic>(
          context, Method.post, HttpUrl.qiniu_delete_img,
          data: params, showLoading: false);
      if (baseResp.code == Constant.status_success) {
        if (baseResp.data is List) {
          if (baseResp.data[0]['code'] == 200) {
            if (needToast) {
              Utils.showToast('删除成功!');
            }
          } else {
            if (needToast) {
              Utils.showToast('${baseResp.data[0]['data']}');
            }
          }
        }
      } else {
        if (needToast) {
          Utils.showToast("删除失败!");
        }
            }
    } catch (error) {}
  }

  /// 获取七牛上传token信息
  Future<QiniuInfoSunModel?> getQiniuInfo(
      BuildContext context, Map<String, String> params,
      {isShowLoading = true}) async {
    try {
      BaseResp<Map<String, dynamic>?> baseResp = await DioUtil()
          .request<Map<String, dynamic>>(
              context, Method.post, HttpUrl.get_qiniu_info,
              data: params, showLoading: false);
      if (baseResp.code == Constant.status_success) {
        if (baseResp.data!.isEmpty) {
        } else {
          //解析解析
          qiniuInfoSunModel = QiniuInfoModel.fromJson(
                  baseResp.responseData as Map<String, dynamic>)
              .data;
          return qiniuInfoSunModel;
        }
      } else {
        Utils.showToast(baseResp.msg ?? "");
            }
    } catch (error) {}
    return null;
  }
}