Commit 525bb2cad7388df1d862f5483b6930251dee65e6

Authored by wdn127929
1 parent dc8619e4

店铺信息页面的可预定时段bug修复OK

@@ -859,15 +859,22 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { @@ -859,15 +859,22 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> {
859 // if (data.length == 1) { 859 // if (data.length == 1) {
860 // return '30'; 860 // return '30';
861 // } else { 861 // } else {
862 - if (value[1] == 0) { 862 + Map map = data[value[0]];
  863 +
  864 + int minute = map.values.last[value[1]];
  865 + if (minute == 0) {
863 return '00'; 866 return '00';
864 - } else if (value[1] == 1) {  
865 - return '15';  
866 - } else if (value[1] == 2) {  
867 - return '30';  
868 - } else {  
869 - return '45';  
870 } 867 }
  868 + return '${minute}';
  869 + // if (value[1] == 0) {
  870 + // return '00';
  871 + // } else if (value[1] == 1) {
  872 + // return '15';
  873 + // } else if (value[1] == 2) {
  874 + // return '30';
  875 + // } else {
  876 + // return '45';
  877 + // }
871 // } 878 // }
872 } 879 }
873 880
@@ -7248,6 +7248,73 @@ class DialogUtil { @@ -7248,6 +7248,73 @@ class DialogUtil {
7248 }); 7248 });
7249 } 7249 }
7250 7250
  7251 + //显示选择可预定时段
  7252 + static Future<List<int>> showSelectCusmanTimerDialog(
  7253 + BuildContext context, List<dynamic> data, ValueChanged valueChanged,
  7254 + {List<int> selecteds,
  7255 + Color cancelTextColor = const Color.fromRGBO(0, 0, 0, 0.6),
  7256 + String title = '',
  7257 + VoidCallback onCancel,
  7258 + String cancelText = '取消'}) {
  7259 + return Picker(
  7260 + selecteds: selecteds,
  7261 + adapter: PickerDataAdapter<String>(pickerData: data),
  7262 + height: ScreenUtil().setWidth(480),
  7263 + hideHeader: false,
  7264 + headerDecoration: BoxDecoration(
  7265 + color: MyColours.color_ffffff,
  7266 + border: Border(
  7267 + bottom: BorderSide(
  7268 + width: ScreenUtil().setWidth(2),
  7269 + color: MyColours.color_E7E7E7),
  7270 + )),
  7271 + title: Text(
  7272 + title,
  7273 + style: TextStyle(
  7274 + fontWeight: FontWeight.bold,
  7275 + color: MyColours.color_515151,
  7276 + fontSize: ScreenUtil().setSp(32)),
  7277 + ),
  7278 + cancelText: cancelText,
  7279 + cancelTextStyle:
  7280 + TextStyle(color: cancelTextColor, fontSize: ScreenUtil().setSp(32)),
  7281 + confirmText: "确定",
  7282 + itemExtent: ScreenUtil().setWidth(80),
  7283 + confirmTextStyle: TextStyle(
  7284 + color: MyColours.color_438E93, fontSize: ScreenUtil().setSp(32)),
  7285 + selectedTextStyle: TextStyle(
  7286 + color: MyColours.color_000000, fontSize: ScreenUtil().setSp(32)),
  7287 + textStyle: TextStyle(
  7288 + color: Color.fromRGBO(0, 0, 0, 0.26),
  7289 + fontSize: ScreenUtil().setSp(32)),
  7290 + selectionOverlay: Container(
  7291 + height: ScreenUtil().setWidth(80),
  7292 + decoration: BoxDecoration(
  7293 + border: Border(
  7294 + bottom: BorderSide(
  7295 + width: ScreenUtil().setWidth(2),
  7296 + color: MyColours.color_E7E7E7),
  7297 + top: BorderSide(
  7298 + width: ScreenUtil().setWidth(2),
  7299 + color: MyColours.color_E7E7E7))),
  7300 + ),
  7301 + onCancel: onCancel,
  7302 + onConfirm: (Picker picker, List value) {
  7303 + Map map = data[value[0]];
  7304 + List list = map.values.last;
  7305 + if (list.length == 1) {
  7306 + value[1] = 0;
  7307 + }
  7308 + print(value.toString());
  7309 + if (valueChanged != null) {
  7310 + valueChanged(value);
  7311 + }
  7312 + }).showModal<List<int>>(context).then((value) {
  7313 + LogUtil.v("value:${value.toString()}");
  7314 + return value;
  7315 + });
  7316 + }
  7317 +
7251 //显示选择客户经理弹框 7318 //显示选择客户经理弹框
7252 static Future<List<int>> showSelectCusmanDialog( 7319 static Future<List<int>> showSelectCusmanDialog(
7253 BuildContext context, List<dynamic> data, ValueChanged valueChanged, 7320 BuildContext context, List<dynamic> data, ValueChanged valueChanged,
@@ -2294,12 +2294,36 @@ class Utils { @@ -2294,12 +2294,36 @@ class Utils {
2294 static getPickerData(String lastTime, List dateData) { 2294 static getPickerData(String lastTime, List dateData) {
2295 String hour = Utils.getHourFromhourAndMinute(lastTime); 2295 String hour = Utils.getHourFromhourAndMinute(lastTime);
2296 String minute = Utils.getMinuteFromhourAndMinute(lastTime); 2296 String minute = Utils.getMinuteFromhourAndMinute(lastTime);
2297 - if (minute == '45') {  
2298 - hour = '${int.parse(hour) + 1}';  
2299 - }  
2300 List tempList = List(); 2297 List tempList = List();
  2298 + // if (minute == '45') {
  2299 + // hour = '${int.parse(hour) + 1}';
  2300 + // }
  2301 +
2301 tempList.addAll(dateData); 2302 tempList.addAll(dateData);
2302 tempList.removeRange(0, int.parse(hour)); 2303 tempList.removeRange(0, int.parse(hour));
  2304 +
  2305 + // if (minute != '45') {
  2306 + Map<String, List<int>> map = tempList[0];
  2307 + Map mapNew = {};
  2308 + // map.map((key, value) {
  2309 +
  2310 + // mapNew[key]
  2311 + // });
  2312 +
  2313 + List<int> list = [];
  2314 + map.forEach((key, value) {
  2315 + value.forEach((element) {
  2316 + if (int.parse(minute) <= element) {
  2317 + list.add(element);
  2318 + }
  2319 + });
  2320 + mapNew[key] = list;
  2321 + });
  2322 + tempList.removeAt(0);
  2323 + tempList.insert(0, mapNew);
  2324 + // }
  2325 +
  2326 + // tempList.replaceRange(0, 0, mapNew);
2303 if (tempList.length == 0) { 2327 if (tempList.length == 0) {
2304 tempList = [ 2328 tempList = [
2305 { 2329 {
@@ -198,11 +198,11 @@ class SetTimeWidget { @@ -198,11 +198,11 @@ class SetTimeWidget {
198 198
199 showTimeSelector( 199 showTimeSelector(
200 context, data, hourAndMinute, SetTimeCallback setTimeCallback) { 200 context, data, hourAndMinute, SetTimeCallback setTimeCallback) {
201 - DialogUtil.showSelectCusmanDialog(context, data, (value) { 201 + DialogUtil.showSelectCusmanTimerDialog(context, data, (value) {
202 setTimeCallback(value); 202 setTimeCallback(value);
203 }, selecteds: [ 203 }, selecteds: [
204 _getFirSelected(hourAndMinute, data), 204 _getFirSelected(hourAndMinute, data),
205 - _getSecSelected(hourAndMinute) 205 + _getSecSelected(hourAndMinute, data)
206 ]).then((value) { 206 ]).then((value) {
207 print(value); 207 print(value);
208 }); 208 });
@@ -222,15 +222,22 @@ class SetTimeWidget { @@ -222,15 +222,22 @@ class SetTimeWidget {
222 } 222 }
223 223
224 // 第二列当前选中第几个 224 // 第二列当前选中第几个
225 - _getSecSelected(String hourAndMinute) { 225 + _getSecSelected(String hourAndMinute, List data) {
226 String minute = Utils.getMinuteFromhourAndMinute(hourAndMinute); 226 String minute = Utils.getMinuteFromhourAndMinute(hourAndMinute);
227 - if (minute == '00') {  
228 - return 0;  
229 - } else if (minute == '15') {  
230 - return 1;  
231 - } else if (minute == '30') {  
232 - return 2;  
233 - }  
234 - return 3; 227 +
  228 + int indexLeft = _getFirSelected(hourAndMinute, data); //第一列选中的index
  229 +
  230 + Map map = data[indexLeft];
  231 + List list = map.values.last;
  232 + int item = int.parse(minute);
  233 + return list.indexOf(item);
  234 + // if (minute == '00') {
  235 + // return 0;
  236 + // } else if (minute == '15') {
  237 + // return 1;
  238 + // } else if (minute == '30') {
  239 + // return 2;
  240 + // }
  241 + // return 3;
235 } 242 }
236 } 243 }