Commit 8274bc181230a73419872e1df2d9ae226b0c9008

Authored by wdn127929
1 parent 09a7debf

宴会创建图片删除 OK

@@ -36,6 +36,8 @@ class SetXuanTaiModel { @@ -36,6 +36,8 @@ class SetXuanTaiModel {
36 List<UploadImgModel> feastRemarkXtImageList = []; //宴会备注图片信息列表----选台 36 List<UploadImgModel> feastRemarkXtImageList = []; //宴会备注图片信息列表----选台
37 String reserveId; 37 String reserveId;
38 38
  39 + List<String>imgAllXt = [];
  40 +
39 SetXuanTaiModel( 41 SetXuanTaiModel(
40 {this.rid, 42 {this.rid,
41 this.reserveOrder, 43 this.reserveOrder,
@@ -345,8 +345,8 @@ class _CouponEidtPageState extends State<CouponEidtPage> { @@ -345,8 +345,8 @@ class _CouponEidtPageState extends State<CouponEidtPage> {
345 List<String> differenceList = difference.toList(); //需要删除的图片 345 List<String> differenceList = difference.toList(); //需要删除的图片
346 if (differenceList.length > 0) { 346 if (differenceList.length > 0) {
347 String delImgs = Utils.listToStringEnglish(differenceList); 347 String delImgs = Utils.listToStringEnglish(differenceList);
348 - delImgs = delImgs.replaceAll(Constant.qiniuUrl, '');  
349 - _uploadImageProvider.deleteImg(context, {'url': delImgs}, 348 +
  349 + _uploadImageProvider.deleteImg(context, delImgs,
350 needToast: false); 350 needToast: false);
351 } 351 }
352 } 352 }
@@ -246,14 +246,13 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -246,14 +246,13 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
246 246
247 if (detailModel.detailModelAllSunModel.photoNote != null && 247 if (detailModel.detailModelAllSunModel.photoNote != null &&
248 detailModel.detailModelAllSunModel.photoNote.length > 0) { 248 detailModel.detailModelAllSunModel.photoNote.length > 0) {
249 - detailModel.detailModelAllSunModel  
250 - .photoNote.forEach((element) {  
251 - UploadImgModel imageModel = UploadImgModel();  
252 - imageModel.qiniuUrl = element;  
253 - imageModel.isUpload = true;  
254 - imageModel.process = 1;  
255 - remarkImgs.add(imageModel);  
256 - }); 249 + detailModel.detailModelAllSunModel.photoNote.forEach((element) {
  250 + UploadImgModel imageModel = UploadImgModel();
  251 + imageModel.qiniuUrl = element;
  252 + imageModel.isUpload = true;
  253 + imageModel.process = 1;
  254 + remarkImgs.add(imageModel);
  255 + });
257 } 256 }
258 257
259 reserveType = detailModel.detailModelAllSunModel.reserveType == null || 258 reserveType = detailModel.detailModelAllSunModel.reserveType == null ||
@@ -322,19 +321,18 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -322,19 +321,18 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
322 Map<String, String> params = { 321 Map<String, String> params = {
323 'rid': widget.rid, 322 'rid': widget.rid,
324 }; 323 };
325 - 324 +
326 await detailModel.getReserveDepositByRid(context, params); 325 await detailModel.getReserveDepositByRid(context, params);
327 - reserveDepositList = []; 326 + reserveDepositList = [];
328 detailModel.reserveDepositList.forEach((element) { 327 detailModel.reserveDepositList.forEach((element) {
329 if (element.payType != '微信预订通知') { 328 if (element.payType != '微信预订通知') {
330 -  
331 reserveDepositList.add(element); 329 reserveDepositList.add(element);
332 } else if (element.payType == '微信预订通知' && 330 } else if (element.payType == '微信预订通知' &&
333 element.tradeState == 'SUCCESS') { 331 element.tradeState == 'SUCCESS') {
334 reserveDepositList.add(element); 332 reserveDepositList.add(element);
335 } 333 }
336 }); 334 });
337 - setState((){}); 335 + setState(() {});
338 } 336 }
339 337
340 ///获取核餐记录 338 ///获取核餐记录
@@ -1456,7 +1454,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -1456,7 +1454,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
1456 if (sucess) { 1454 if (sucess) {
1457 bus.emit("refresh_book_list"); //刷新已预订列表 1455 bus.emit("refresh_book_list"); //刷新已预订列表
1458 1456
1459 - await getReserveDetailDataSet(showCicle: false,isShowLoading: false); 1457 + await getReserveDetailDataSet(
  1458 + showCicle: false, isShowLoading: false);
1460 Navigator.pop(context); 1459 Navigator.pop(context);
1461 } 1460 }
1462 }, 1461 },
@@ -1611,7 +1610,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -1611,7 +1610,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
1611 if (sucess) { 1610 if (sucess) {
1612 bus.emit("refresh_book_list"); //刷新已预订列表 1611 bus.emit("refresh_book_list"); //刷新已预订列表
1613 await getReserveDetailDataSet( 1612 await getReserveDetailDataSet(
1614 - showCicle: false,isShowLoading: false); 1613 + showCicle: false, isShowLoading: false);
1615 } 1614 }
1616 }, 1615 },
1617 width: 80, 1616 width: 80,
@@ -2016,7 +2015,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -2016,7 +2015,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
2016 ]); 2015 ]);
2017 } 2016 }
2018 2017
2019 - _updatePhotoNote() async { 2018 + _updatePhotoNote({String qiniuUrl}) async {
2020 List<String> imageQiniuUrlList = []; 2019 List<String> imageQiniuUrlList = [];
2021 // if (isDelete) { 2020 // if (isDelete) {
2022 for (int i = 0; i < remarkImgs.length; i++) { 2021 for (int i = 0; i < remarkImgs.length; i++) {
@@ -2039,6 +2038,10 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -2039,6 +2038,10 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
2039 photoNote: json.encode(imageQiniuUrlList)); 2038 photoNote: json.encode(imageQiniuUrlList));
2040 2039
2041 if (sucess) { 2040 if (sucess) {
  2041 + if (qiniuUrl != null) {
  2042 + _uploadImageProvider.deleteImg(context, qiniuUrl,needToast: false);
  2043 + }
  2044 +
2042 // bus.emit("refresh_book_list"); //刷新已预订列表 2045 // bus.emit("refresh_book_list"); //刷新已预订列表
2043 2046
2044 // EventBus().emit("refresh_tablemanager"); //刷新桌位 2047 // EventBus().emit("refresh_tablemanager"); //刷新桌位
@@ -2075,11 +2078,13 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -2075,11 +2078,13 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
2075 imageList: remarkImgs, 2078 imageList: remarkImgs,
2076 uploadType: UploadType.RemarkImagesType, 2079 uploadType: UploadType.RemarkImagesType,
2077 deleteCallback: (int index) { 2080 deleteCallback: (int index) {
  2081 + String qiniuUrl = remarkImgs[index].qiniuUrl;
2078 remarkImgs.removeWhere( 2082 remarkImgs.removeWhere(
2079 (element) => element == remarkImgs[index]); 2083 (element) => element == remarkImgs[index]);
2080 setState(() {}); 2084 setState(() {});
2081 //删除图片接口?????? 2085 //删除图片接口??????
2082 - _updatePhotoNote(); 2086 + _updatePhotoNote(
  2087 + qiniuUrl: qiniuUrl);
2083 }, 2088 },
2084 callback: () async { 2089 callback: () async {
2085 print(remarkImgs); 2090 print(remarkImgs);
@@ -2520,15 +2525,17 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -2520,15 +2525,17 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
2520 .tables 2525 .tables
2521 .length < 2526 .length <
2522 3 2527 3
2523 - ? detailModel  
2524 - .detailModelAllSunModel  
2525 - .tables  
2526 - .length == 0? SizedBox():Row(  
2527 - children: _tableWidget(  
2528 - detailModel 2528 + ? detailModel
  2529 + .detailModelAllSunModel
  2530 + .tables
  2531 + .length ==
  2532 + 0
  2533 + ? SizedBox()
  2534 + : Row(
  2535 + children: _tableWidget(detailModel
2529 .detailModelAllSunModel 2536 .detailModelAllSunModel
2530 .tables), 2537 .tables),
2531 - ) 2538 + )
2532 : InkWell( 2539 : InkWell(
2533 onTap: () { 2540 onTap: () {
2534 DialogUtil.openFTablesDialogNew( 2541 DialogUtil.openFTablesDialogNew(
@@ -2740,7 +2747,9 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -2740,7 +2747,9 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
2740 EventBus().emit( 2747 EventBus().emit(
2741 "refresh_tablemanager"); //刷新桌位 2748 "refresh_tablemanager"); //刷新桌位
2742 await getReserveDetailDataSet( 2749 await getReserveDetailDataSet(
2743 - showCicle: false,isShowLoading: false); 2750 + showCicle: false,
  2751 + isShowLoading:
  2752 + false);
2744 } 2753 }
2745 })), 2754 })),
2746 HEmptyView(60), 2755 HEmptyView(60),
@@ -4586,8 +4595,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -4586,8 +4595,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
4586 .cookbooklist != 4595 .cookbooklist !=
4587 null && 4596 null &&
4588 detailModel.detailModelAllSunModel 4597 detailModel.detailModelAllSunModel
4589 - .cookbooklist  
4590 - == 4598 + .cookbooklist ==
4591 1) 4599 1)
4592 Expanded( 4600 Expanded(
4593 flex: 1, 4601 flex: 1,
@@ -114,6 +114,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -114,6 +114,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
114 Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单 114 Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单
115 List<TableOuter> tableOuterList = []; //区域-桌位列表 115 List<TableOuter> tableOuterList = []; //区域-桌位列表
116 116
  117 + List<String> imgAllYx = [];
  118 + List<String> imgAllDj = [];
  119 + List<String> imgAllHt = [];
  120 + List<String> imgAllFp = [];
117 @override 121 @override
118 void initState() { 122 void initState() {
119 // TODO: implement initState 123 // TODO: implement initState
@@ -214,6 +218,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -214,6 +218,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
214 customC.text = basicInfo.remark; 218 customC.text = basicInfo.remark;
215 //备注图片 219 //备注图片
216 _uploadImageProvider.feastRemarkImageList = []; 220 _uploadImageProvider.feastRemarkImageList = [];
  221 +
217 print(basicInfo.images); 222 print(basicInfo.images);
218 if (basicInfo.images != null) { 223 if (basicInfo.images != null) {
219 basicInfo.images.forEach((element) { 224 basicInfo.images.forEach((element) {
@@ -221,6 +226,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -221,6 +226,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
221 imgModel.qiniuUrl = element.url; 226 imgModel.qiniuUrl = element.url;
222 imgModel.process = 1; 227 imgModel.process = 1;
223 _uploadImageProvider.feastRemarkImageList.add(imgModel); 228 _uploadImageProvider.feastRemarkImageList.add(imgModel);
  229 + imgAllYx.add(element.url);
224 }); 230 });
225 } 231 }
226 232
@@ -278,6 +284,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -278,6 +284,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
278 setXuanTaiModel.customCxt.text = element.remark; //选台备注 284 setXuanTaiModel.customCxt.text = element.remark; //选台备注
279 setXuanTaiModel.feastRemarkXtImageList = 285 setXuanTaiModel.feastRemarkXtImageList =
280 element.feastRemarkImages; //宴会备注图片信息列表----选台 286 element.feastRemarkImages; //宴会备注图片信息列表----选台
  287 +
  288 + setXuanTaiModel.imgAllXt.addAll(
  289 + element.feastRemarkImages.map((e) => e.qiniuUrl).toList());
  290 + print(setXuanTaiModel.imgAllXt);
281 setXuanTaiModel.reserveId = element.id; //场次id 291 setXuanTaiModel.reserveId = element.id; //场次id
282 xuantaiData.add(setXuanTaiModel); 292 xuantaiData.add(setXuanTaiModel);
283 SessionsSunModel sessionsSunModel = SessionsSunModel(); 293 SessionsSunModel sessionsSunModel = SessionsSunModel();
@@ -322,6 +332,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -322,6 +332,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
322 imgModel.qiniuUrl = element.url; 332 imgModel.qiniuUrl = element.url;
323 imgModel.process = 1; 333 imgModel.process = 1;
324 _uploadImageProvider.feastRemarkDjImageList.add(imgModel); 334 _uploadImageProvider.feastRemarkDjImageList.add(imgModel);
  335 + imgAllDj.add(element.url);
325 }); 336 });
326 } 337 }
327 338
@@ -452,6 +463,16 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -452,6 +463,16 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
452 uploadImgModel.process = 1; 463 uploadImgModel.process = 1;
453 uploadImgModel.qiniuUrl = element.url; 464 uploadImgModel.qiniuUrl = element.url;
454 _uploadImageProvider.feastRemarkContractImageList.add(uploadImgModel); 465 _uploadImageProvider.feastRemarkContractImageList.add(uploadImgModel);
  466 + imgAllHt.add(element.url);
  467 + });
  468 +
  469 + _uploadImageProvider.feastRemarkInvoiceImageList = [];
  470 + feastModel.banquetDetail.invoice?.images?.forEach((element) {
  471 + UploadImgModel uploadImgModel = UploadImgModel();
  472 + uploadImgModel.process = 1;
  473 + uploadImgModel.qiniuUrl = element.url;
  474 + _uploadImageProvider.feastRemarkInvoiceImageList.add(uploadImgModel);
  475 + imgAllFp.add(element.url);
455 }); 476 });
456 setState(() {}); 477 setState(() {});
457 } 478 }
@@ -971,7 +992,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -971,7 +992,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
971 Utils.showToast('请选择接单人'); 992 Utils.showToast('请选择接单人');
972 return false; 993 return false;
973 } 994 }
974 - if (gdShow == '请选择') { 995 + if (gdShow == '请选择' || gdSelIndex == -1) {
975 Utils.showToast('请选择跟单人'); 996 Utils.showToast('请选择跟单人');
976 return false; 997 return false;
977 } 998 }
@@ -995,9 +1016,11 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -995,9 +1016,11 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
995 } 1016 }
996 1017
997 List imageQiniuUrlList = []; //接口图片数据list 1018 List imageQiniuUrlList = []; //接口图片数据list
  1019 + List<String> imageremarks = []; //接口图片数据list
998 for (int i = 0; i < _uploadImageProvider.feastRemarkImageList.length; i++) { 1020 for (int i = 0; i < _uploadImageProvider.feastRemarkImageList.length; i++) {
999 imageQiniuUrlList 1021 imageQiniuUrlList
1000 .add({"url": _uploadImageProvider.feastRemarkImageList[i].qiniuUrl}); 1022 .add({"url": _uploadImageProvider.feastRemarkImageList[i].qiniuUrl});
  1023 + imageremarks.add(_uploadImageProvider.feastRemarkImageList[i].qiniuUrl);
1001 } 1024 }
1002 1025
1003 String ddate = (dateTime.millisecondsSinceEpoch / 1000).floor().toString(); 1026 String ddate = (dateTime.millisecondsSinceEpoch / 1000).floor().toString();
@@ -1022,6 +1045,14 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1022,6 +1045,14 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1022 } 1045 }
1023 bool success = await feastModel.createBanquet(context, pramas); 1046 bool success = await feastModel.createBanquet(context, pramas);
1024 if (success) { 1047 if (success) {
  1048 + // imgAll和images 比较,挑出不一样的,删除七牛云
  1049 + imgAllYx.remove(null);
  1050 + Set<String> difference = Set.from(imgAllYx)..removeAll(imageremarks);
  1051 + List<String> differenceList = difference.toList(); //需要删除的图片
  1052 + if (differenceList.length > 0) {
  1053 + String delImgs = Utils.listToStringEnglish(differenceList);
  1054 + _uploadImageProvider.deleteImg(context, delImgs, needToast: false);
  1055 + }
1025 Utils.showToast('保存成功'); 1056 Utils.showToast('保存成功');
1026 // if (widget.banquetDetail != null) { 1057 // if (widget.banquetDetail != null) {
1027 bus.emit('feast_detail_page'); //编辑之后刷新宴会详情页面 1058 bus.emit('feast_detail_page'); //编辑之后刷新宴会详情页面
@@ -1144,6 +1175,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1144,6 +1175,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1144 maxImageNumber: 8, 1175 maxImageNumber: 8,
1145 mainAxisSpacing: 72, 1176 mainAxisSpacing: 72,
1146 crossAxisSpacing: 56, 1177 crossAxisSpacing: 56,
  1178 + callback: () {
  1179 + imgAllYx.add(model.feastRemarkImageList.last.qiniuUrl);
  1180 + print('完成');
  1181 + },
1147 ); 1182 );
1148 }), 1183 }),
1149 ), 1184 ),
@@ -1545,7 +1580,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1545,7 +1580,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1545 ///预订按钮点击的时候提醒已经被预订的桌子 1580 ///预订按钮点击的时候提醒已经被预订的桌子
1546 /// 1581 ///
1547 if (xuantaiData[xuantaiSelIndex].tableList.length > 0) { 1582 if (xuantaiData[xuantaiSelIndex].tableList.length > 0) {
1548 - for (TableListReserve item in xuantaiData[xuantaiSelIndex].tableList) { 1583 + for (TableListReserve item
  1584 + in xuantaiData[xuantaiSelIndex].tableList) {
1549 // if (item.isMerge == '1') { 1585 // if (item.isMerge == '1') {
1550 // // (tids.contains(item.tids)) 1586 // // (tids.contains(item.tids))
1551 // List<String> mergetids = item.tids.split(','); 1587 // List<String> mergetids = item.tids.split(',');
@@ -1667,6 +1703,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1667,6 +1703,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1667 if (!canRequest) { 1703 if (!canRequest) {
1668 return false; 1704 return false;
1669 } else { 1705 } else {
  1706 + List<String> delImgs = [];
  1707 +
1670 ///组装请求数据 1708 ///组装请求数据
1671 List dataRequest = []; //请求数据 1709 List dataRequest = []; //请求数据
1672 xuantaiData.forEach((element) { 1710 xuantaiData.forEach((element) {
@@ -1826,10 +1864,18 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1826,10 +1864,18 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1826 // } 1864 // }
1827 // 图片 1865 // 图片
1828 List imageQiniuUrlList = []; //接口图片数据list 1866 List imageQiniuUrlList = []; //接口图片数据list
  1867 + List<String> imageStr = []; //接口图片数据list
1829 for (int i = 0; i < element.feastRemarkXtImageList.length; i++) { 1868 for (int i = 0; i < element.feastRemarkXtImageList.length; i++) {
1830 imageQiniuUrlList 1869 imageQiniuUrlList
1831 .add({"url": element.feastRemarkXtImageList[i].qiniuUrl}); 1870 .add({"url": element.feastRemarkXtImageList[i].qiniuUrl});
  1871 + imageStr.add(element.feastRemarkXtImageList[i].qiniuUrl);
1832 } 1872 }
  1873 +
  1874 + // imgAll和images 比较,挑出不一样的,删除七牛云
  1875 + Set<String> difference = Set.from(xuantaiData[xuantaiSelIndex].imgAllXt)
  1876 + ..removeAll(imageStr);
  1877 + List<String> differenceList = difference.toList(); //需要删除的图片
  1878 + delImgs.addAll(differenceList);
1833 // if (imageQiniuUrlList.length > 0) { 1879 // if (imageQiniuUrlList.length > 0) {
1834 map['images'] = imageQiniuUrlList; //图片数据 1880 map['images'] = imageQiniuUrlList; //图片数据
1835 // } 1881 // }
@@ -1840,6 +1886,11 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1840,6 +1886,11 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1840 1886
1841 bool success = await feastModel.setBanquetInfo(context, pramas); 1887 bool success = await feastModel.setBanquetInfo(context, pramas);
1842 if (success) { 1888 if (success) {
  1889 + List<String> delTemp = delImgs.toSet().toList();
  1890 + if (delTemp.length > 0) {
  1891 + String delImgsStr = Utils.listToStringEnglish(delTemp);
  1892 + _uploadImageProvider.deleteImg(context, delImgsStr, needToast: false);
  1893 + }
1843 feastModel.sessionsSunModelList.forEach((element) { 1894 feastModel.sessionsSunModelList.forEach((element) {
1844 //把对应场次的ID赋值给本地数据 1895 //把对应场次的ID赋值给本地数据
1845 xuantaiData.forEach((item) { 1896 xuantaiData.forEach((item) {
@@ -2480,11 +2531,15 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -2480,11 +2531,15 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
2480 .tableList 2531 .tableList
2481 .length > 2532 .length >
2482 0) { 2533 0) {
2483 - temp =  
2484 - await NavigatorUtil.goSelectTableFPageOrRerserve(  
2485 - context, xuantaiData[xuantaiSelIndex].rid, ddate, ddateSolt, 2534 + temp = await NavigatorUtil
  2535 + .goSelectTableFPageOrRerserve(
  2536 + context,
  2537 + xuantaiData[xuantaiSelIndex].rid,
  2538 + ddate,
  2539 + ddateSolt,
2486 canChoose: true, 2540 canChoose: true,
2487 - hmS: xuantaiData[xuantaiSelIndex] 2541 + hmS: xuantaiData[
  2542 + xuantaiSelIndex]
2488 .startDate, 2543 .startDate,
2489 hmE: xuantaiData[xuantaiSelIndex] 2544 hmE: xuantaiData[xuantaiSelIndex]
2490 .endDate, 2545 .endDate,
@@ -2497,8 +2552,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -2497,8 +2552,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
2497 .tableList 2552 .tableList
2498 }); 2553 });
2499 } else { 2554 } else {
2500 - temp =  
2501 - await NavigatorUtil.goSelectTableFPageOrRerserve( 2555 + temp = await NavigatorUtil
  2556 + .goSelectTableFPageOrRerserve(
2502 context, 2557 context,
2503 xuantaiData[xuantaiSelIndex].rid, 2558 xuantaiData[xuantaiSelIndex].rid,
2504 ddate, 2559 ddate,
@@ -3064,6 +3119,14 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -3064,6 +3119,14 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
3064 crossAxisSpacing: 56, 3119 crossAxisSpacing: 56,
3065 feastRemarkXtImageList: xuantaiData[xuantaiSelIndex] 3120 feastRemarkXtImageList: xuantaiData[xuantaiSelIndex]
3066 .feastRemarkXtImageList, 3121 .feastRemarkXtImageList,
  3122 + callback: () {
  3123 + xuantaiData[xuantaiSelIndex].imgAllXt.add(
  3124 + xuantaiData[xuantaiSelIndex]
  3125 + .feastRemarkXtImageList
  3126 + .last
  3127 + .qiniuUrl);
  3128 + print('完成');
  3129 + },
3067 ); 3130 );
3068 }), 3131 }),
3069 ), 3132 ),
@@ -3102,7 +3165,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -3102,7 +3165,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
3102 3165
3103 /// 担保人保存接口 3166 /// 担保人保存接口
3104 Future<bool> dbSave() async { 3167 Future<bool> dbSave() async {
3105 - if (djDBRIndex == null) { 3168 + if (djDBRIndex == null || djDBRIndex == -1) {
3106 Utils.showToast('请选择担保人'); 3169 Utils.showToast('请选择担保人');
3107 return false; 3170 return false;
3108 } 3171 }
@@ -3115,11 +3178,13 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -3115,11 +3178,13 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
3115 } 3178 }
3116 3179
3117 List imageQiniuUrlList = []; //接口图片数据list 3180 List imageQiniuUrlList = []; //接口图片数据list
  3181 + List<String> delImgs = []; //接口图片数据list
3118 for (int i = 0; 3182 for (int i = 0;
3119 i < _uploadImageProvider.feastRemarkDjImageList.length; 3183 i < _uploadImageProvider.feastRemarkDjImageList.length;
3120 i++) { 3184 i++) {
3121 imageQiniuUrlList.add( 3185 imageQiniuUrlList.add(
3122 {"url": _uploadImageProvider.feastRemarkDjImageList[i].qiniuUrl}); 3186 {"url": _uploadImageProvider.feastRemarkDjImageList[i].qiniuUrl});
  3187 + delImgs.add(_uploadImageProvider.feastRemarkDjImageList[i].qiniuUrl);
3123 } 3188 }
3124 Map<String, String> pramas = { 3189 Map<String, String> pramas = {
3125 'sid': Provider.of<UserModel>(context, listen: false).user.sellerid, 3190 'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
@@ -3130,6 +3195,12 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -3130,6 +3195,12 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
3130 }; 3195 };
3131 bool success = await feastModel.setWarrant(context, pramas); 3196 bool success = await feastModel.setWarrant(context, pramas);
3132 if (success) { 3197 if (success) {
  3198 + Set<String> difference = Set.from(imgAllDj)..removeAll(delImgs);
  3199 + List<String> differenceList = difference.toList(); //需要删除的图片
  3200 + if (differenceList.length > 0) {
  3201 + String delImgs = Utils.listToStringEnglish(differenceList);
  3202 + _uploadImageProvider.deleteImg(context, delImgs, needToast: false);
  3203 + }
3133 // if (widget.banquetDetail != null) { 3204 // if (widget.banquetDetail != null) {
3134 bus.emit('feast_detail_page'); //编辑之后刷新宴会详情页面 3205 bus.emit('feast_detail_page'); //编辑之后刷新宴会详情页面
3135 bus.emit('feast_home_page'); //编辑之后刷新宴会首页 3206 bus.emit('feast_home_page'); //编辑之后刷新宴会首页
@@ -3387,6 +3458,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -3387,6 +3458,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
3387 maxImageNumber: 8, 3458 maxImageNumber: 8,
3388 mainAxisSpacing: 72, 3459 mainAxisSpacing: 72,
3389 crossAxisSpacing: 56, 3460 crossAxisSpacing: 56,
  3461 + callback: () {
  3462 + imgAllDj.add(model.feastRemarkDjImageList.last.qiniuUrl);
  3463 + print('完成');
  3464 + },
3390 ); 3465 );
3391 }), 3466 }),
3392 ), 3467 ),
@@ -3439,7 +3514,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -3439,7 +3514,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
3439 color: MyColours.color_999999, fontSize: font(12))), 3514 color: MyColours.color_999999, fontSize: font(12))),
3440 ), 3515 ),
3441 Expanded( 3516 Expanded(
3442 - child: Text(content??'', 3517 + child: Text(content ?? '',
3443 style: TextStyle( 3518 style: TextStyle(
3444 color: MyColours.color_515151, fontSize: font(12)))) 3519 color: MyColours.color_515151, fontSize: font(12))))
3445 ], 3520 ],
@@ -4422,6 +4497,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -4422,6 +4497,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
4422 maxImageNumber: 8, 4497 maxImageNumber: 8,
4423 mainAxisSpacing: 72, 4498 mainAxisSpacing: 72,
4424 crossAxisSpacing: 56, 4499 crossAxisSpacing: 56,
  4500 + callback: (){
  4501 + imgAllHt.add( _uploadImageProvider.feastRemarkContractImageList.last.qiniuUrl);
  4502 +
  4503 + },
4425 ); 4504 );
4426 }), 4505 }),
4427 ], 4506 ],
@@ -4686,6 +4765,11 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -4686,6 +4765,11 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
4686 maxImageNumber: 8, 4765 maxImageNumber: 8,
4687 mainAxisSpacing: 72, 4766 mainAxisSpacing: 72,
4688 crossAxisSpacing: 56, 4767 crossAxisSpacing: 56,
  4768 + callback: (){
  4769 +
  4770 + imgAllFp.add( _uploadImageProvider.feastRemarkInvoiceImageList.last.qiniuUrl);
  4771 +
  4772 + },
4689 ); 4773 );
4690 }), 4774 }),
4691 ], 4775 ],
@@ -4966,12 +5050,15 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -4966,12 +5050,15 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
4966 ///设置合同信息 5050 ///设置合同信息
4967 Future<bool> _setBanquetContract() async { 5051 Future<bool> _setBanquetContract() async {
4968 List imageQiniuUrlList = []; //接口图片数据list 5052 List imageQiniuUrlList = []; //接口图片数据list
  5053 + List<String> delImgs = []; //接口图片数据list
4969 for (int i = 0; 5054 for (int i = 0;
4970 i < _uploadImageProvider.feastRemarkContractImageList.length; 5055 i < _uploadImageProvider.feastRemarkContractImageList.length;
4971 i++) { 5056 i++) {
  5057 + String url = _uploadImageProvider.feastRemarkContractImageList[i].qiniuUrl;
4972 imageQiniuUrlList.add({ 5058 imageQiniuUrlList.add({
4973 - "url": _uploadImageProvider.feastRemarkContractImageList[i].qiniuUrl 5059 + "url": url
4974 }); 5060 });
  5061 + delImgs.add(url);
4975 } 5062 }
4976 Map<String, String> params = { 5063 Map<String, String> params = {
4977 'rid': feastModel.rid, //'64' 5064 'rid': feastModel.rid, //'64'
@@ -4987,6 +5074,12 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -4987,6 +5074,12 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
4987 bool success = await feastModel.setBanquetContract(context, params); 5074 bool success = await feastModel.setBanquetContract(context, params);
4988 5075
4989 if (success) { 5076 if (success) {
  5077 + Set<String> difference = Set.from(imgAllHt)..removeAll(delImgs);
  5078 + List<String> differenceList = difference.toList(); //需要删除的图片
  5079 + if (differenceList.length > 0) {
  5080 + String delImgs = Utils.listToStringEnglish(differenceList);
  5081 + _uploadImageProvider.deleteImg(context, delImgs, needToast: false);
  5082 + }
4990 return true; 5083 return true;
4991 } else { 5084 } else {
4992 return false; 5085 return false;
@@ -5000,12 +5093,15 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -5000,12 +5093,15 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
5000 } 5093 }
5001 5094
5002 List imageQiniuUrlListInvoice = []; //接口图片数据list 5095 List imageQiniuUrlListInvoice = []; //接口图片数据list
  5096 + List<String> delImgs = []; //接口图片数据list
5003 for (int i = 0; 5097 for (int i = 0;
5004 i < _uploadImageProvider.feastRemarkInvoiceImageList.length; 5098 i < _uploadImageProvider.feastRemarkInvoiceImageList.length;
5005 i++) { 5099 i++) {
  5100 + String url = _uploadImageProvider.feastRemarkInvoiceImageList[i].qiniuUrl;
5006 imageQiniuUrlListInvoice.add({ 5101 imageQiniuUrlListInvoice.add({
5007 - "url": _uploadImageProvider.feastRemarkInvoiceImageList[i].qiniuUrl 5102 + "url":url
5008 }); 5103 });
  5104 + delImgs.add(url);
5009 } 5105 }
5010 if (imageQiniuUrlListInvoice.length > 0) { 5106 if (imageQiniuUrlListInvoice.length > 0) {
5011 feastModel.banquetDetail.invoice.images = []; 5107 feastModel.banquetDetail.invoice.images = [];
@@ -5022,6 +5118,12 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -5022,6 +5118,12 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
5022 bool success = await feastModel.setInvoice(context, pramas); 5118 bool success = await feastModel.setInvoice(context, pramas);
5023 5119
5024 if (success) { 5120 if (success) {
  5121 + Set<String> difference = Set.from(imgAllFp)..removeAll(delImgs);
  5122 + List<String> differenceList = difference.toList(); //需要删除的图片
  5123 + if (differenceList.length > 0) {
  5124 + String delImgs = Utils.listToStringEnglish(differenceList);
  5125 + _uploadImageProvider.deleteImg(context, delImgs, needToast: false);
  5126 + }
5025 return true; 5127 return true;
5026 } else { 5128 } else {
5027 return false; 5129 return false;
@@ -123,15 +123,15 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> { @@ -123,15 +123,15 @@ class _OnlineCheckEditPageState extends State<OnlineCheckEditPage> {
123 .substring(1, _editingController.text.length) 123 .substring(1, _editingController.text.length)
124 .trim(); 124 .trim();
125 } 125 }
  126 + List<String> imgs = [];
126 for (int i = 0; i < _uploadImageProvider.imageList.length; i++) { 127 for (int i = 0; i < _uploadImageProvider.imageList.length; i++) {
127 - _uploadImageProvider.imageQiniuUrlList  
128 - .add(_uploadImageProvider.imageList[i].qiniuUrl); 128 + imgs.add(_uploadImageProvider.imageList[i].qiniuUrl);
129 } 129 }
130 UserModel userModel = Provider.of<UserModel>(context, listen: false); 130 UserModel userModel = Provider.of<UserModel>(context, listen: false);
131 Map<String, String> params = { 131 Map<String, String> params = {
132 "price": price, 132 "price": price,
133 "rid": widget.rid, 133 "rid": widget.rid,
134 - 'bill_list': json.encode(_uploadImageProvider.imageQiniuUrlList) 134 + 'bill_list': json.encode(imgs)
135 }; 135 };
136 print(params); 136 print(params);
137 //明天完成 桌位名称信息 137 //明天完成 桌位名称信息
@@ -62,9 +62,11 @@ class UploadImageProvider extends ChangeNotifier { @@ -62,9 +62,11 @@ class UploadImageProvider extends ChangeNotifier {
62 } 62 }
63 63
64 /// 删除七牛图片资源 64 /// 删除七牛图片资源
65 - Future<QiniuInfoSunModel> deleteImg(  
66 - BuildContext context, Map<String, String> params, 65 + deleteImg(BuildContext context, String delImgs,
67 {isShowLoading = true, bool needToast = true}) async { 66 {isShowLoading = true, bool needToast = true}) async {
  67 + Map<String, String> params = {
  68 + 'url': delImgs.replaceAll(Constant.qiniuUrl, '')
  69 + };
68 BaseResp<dynamic> baseResp = await DioUtil() 70 BaseResp<dynamic> baseResp = await DioUtil()
69 .request<dynamic>(context, Method.post, HttpUrl.qiniu_delete_img, 71 .request<dynamic>(context, Method.post, HttpUrl.qiniu_delete_img,
70 data: params, showLoading: false) 72 data: params, showLoading: false)
@@ -173,24 +173,29 @@ class UploadImageUtil { @@ -173,24 +173,29 @@ class UploadImageUtil {
173 //宴会备注---意向 173 //宴会备注---意向
174 uploadImageProvider.feastRemarkImageList[index].process = 1; 174 uploadImageProvider.feastRemarkImageList[index].process = 1;
175 uploadImageProvider.feastRemarkImageList[index].qiniuUrl = imgUrl; 175 uploadImageProvider.feastRemarkImageList[index].qiniuUrl = imgUrl;
  176 + callback();
176 } else if (uploadType == UploadType.FeastRemarkXtType) { 177 } else if (uploadType == UploadType.FeastRemarkXtType) {
177 //宴会备注---选台 178 //宴会备注---选台
178 feastRemarkXtImageList[index].process = 1; 179 feastRemarkXtImageList[index].process = 1;
179 feastRemarkXtImageList[index].qiniuUrl = imgUrl; 180 feastRemarkXtImageList[index].qiniuUrl = imgUrl;
  181 + callback();
180 } else if (uploadType == UploadType.FeastRemarkDjType) { 182 } else if (uploadType == UploadType.FeastRemarkDjType) {
181 //宴会备注---订金 183 //宴会备注---订金
182 uploadImageProvider.feastRemarkDjImageList[index].process = 1; 184 uploadImageProvider.feastRemarkDjImageList[index].process = 1;
183 uploadImageProvider.feastRemarkDjImageList[index].qiniuUrl = imgUrl; 185 uploadImageProvider.feastRemarkDjImageList[index].qiniuUrl = imgUrl;
  186 + callback();
184 } else if (uploadType == UploadType.FeastRemarkContractType) { 187 } else if (uploadType == UploadType.FeastRemarkContractType) {
185 //宴会备注 ---合同 188 //宴会备注 ---合同
186 uploadImageProvider.feastRemarkContractImageList[index].process = 1; 189 uploadImageProvider.feastRemarkContractImageList[index].process = 1;
187 uploadImageProvider.feastRemarkContractImageList[index].qiniuUrl = 190 uploadImageProvider.feastRemarkContractImageList[index].qiniuUrl =
188 imgUrl; 191 imgUrl;
  192 + callback();
189 } else if (uploadType == UploadType.FeastRemarkInvoiceType) { 193 } else if (uploadType == UploadType.FeastRemarkInvoiceType) {
190 //宴会备注 ---发票 194 //宴会备注 ---发票
191 uploadImageProvider.feastRemarkInvoiceImageList[index].process = 1; 195 uploadImageProvider.feastRemarkInvoiceImageList[index].process = 1;
192 uploadImageProvider.feastRemarkInvoiceImageList[index].qiniuUrl = 196 uploadImageProvider.feastRemarkInvoiceImageList[index].qiniuUrl =
193 imgUrl; 197 imgUrl;
  198 + callback();
194 } else if (uploadType == UploadType.InvitationStoreType) { 199 } else if (uploadType == UploadType.InvitationStoreType) {
195 //宴会备注 ---发票 200 //宴会备注 ---发票
196 uploadImageProvider.feastRemarkInvoiceImageList[index].process = 1; 201 uploadImageProvider.feastRemarkInvoiceImageList[index].process = 1;
@@ -314,8 +319,13 @@ class UploadImageUtil { @@ -314,8 +319,13 @@ class UploadImageUtil {
314 } 319 }
315 320
316 ///上传到七牛云 321 ///上传到七牛云
317 - void startUploadOnlyAddition(BuildContext context, File selectedFile,  
318 - int index, bool needInit, UploadImageProvider uploadImageProvider,VoidCallback callback) async { 322 + void startUploadOnlyAddition(
  323 + BuildContext context,
  324 + File selectedFile,
  325 + int index,
  326 + bool needInit,
  327 + UploadImageProvider uploadImageProvider,
  328 + VoidCallback callback) async {
319 final PutController putController = PutController(); 329 final PutController putController = PutController();
320 print(index); 330 print(index);
321 331
@@ -363,22 +373,22 @@ class UploadImageUtil { @@ -363,22 +373,22 @@ class UploadImageUtil {
363 373
364 // 取消当前任务 374 // 取消当前任务
365 // putController.cancel(); 375 // putController.cancel();
366 - UploadImgModel imgModel = uploadImageProvider.getDynamicValue('${index}');  
367 - imgModel.process = 1;  
368 - imgModel.qiniuUrl = imgUrl;  
369 - imgModel.file = null;  
370 - uploadImageProvider.notifyListeners();  
371 - callback();  
372 -  
373 - 376 + UploadImgModel imgModel =
  377 + uploadImageProvider.getDynamicValue('${index}');
  378 + imgModel.process = 1;
  379 + imgModel.qiniuUrl = imgUrl;
  380 + imgModel.file = null;
  381 + uploadImageProvider.notifyListeners();
  382 + callback();
374 }) 383 })
375 ..catchError((dynamic error) { 384 ..catchError((dynamic error) {
376 - UploadImgModel imgModel = uploadImageProvider.getDynamicValue('${index}');  
377 - imgModel.process = 0;  
378 - imgModel.qiniuUrl = null;  
379 - imgModel.file = null;  
380 - uploadImageProvider.notifyListeners();  
381 - 385 + UploadImgModel imgModel =
  386 + uploadImageProvider.getDynamicValue('${index}');
  387 + imgModel.process = 0;
  388 + imgModel.qiniuUrl = null;
  389 + imgModel.file = null;
  390 + uploadImageProvider.notifyListeners();
  391 +
382 // 取消当前任务 392 // 取消当前任务
383 putController.cancel(); 393 putController.cancel();
384 uploadImageProvider.notifyListeners(); 394 uploadImageProvider.notifyListeners();