|
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
import 'package:cached_network_image/cached_network_image.dart';
|
|
|
|
import 'package:dio/dio.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter/services.dart';
|
|
|
|
import 'package:flutter_screenutil/screenutil.dart';
|
|
|
|
import 'package:one_key/models/get_seller_info_model.dart';
|
|
|
|
import 'package:one_key/models/set_seller_info_model.dart';
|
|
|
|
import 'package:one_key/models/upload_img_model.dart';
|
|
|
|
import 'package:one_key/models/user.dart';
|
|
|
|
import 'package:one_key/pages/online_check/photo_view_wiget.dart';
|
|
|
|
import 'package:one_key/pages/online_check/progress.dart';
|
|
|
|
import 'package:one_key/provider/base_info_provider.dart';
|
|
|
|
import 'package:one_key/provider/store_base_info_provider.dart';
|
|
|
|
import 'package:one_key/provider/upload_img_provider.dart';
|
|
|
|
import 'package:one_key/provider/user_model.dart';
|
|
|
|
import 'package:one_key/res/colors.dart';
|
|
...
|
...
|
@@ -43,16 +47,22 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
FocusNode _timeFocusNode = FocusNode();
|
|
|
|
FocusNode _addressFocusNode = FocusNode();
|
|
|
|
FocusNode _introductionFocusNode = FocusNode();
|
|
|
|
String storeAddress;
|
|
|
|
|
|
|
|
Map<String, dynamic> mapAddress;
|
|
|
|
|
|
|
|
final picker = ImagePicker();
|
|
|
|
// OnlineCheckEditProvider _onlineCheckEditProvider;
|
|
|
|
UploadImageProvider _uploadImageProvider;
|
|
|
|
BaseIndoProvider _baseIndoProvider;
|
|
|
|
StoreBaseIndoProvider _baseIndoProvider;
|
|
|
|
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
super.initState();
|
|
|
|
mapAddress = {
|
|
|
|
"address": '点击选择',
|
|
|
|
'lat': '',
|
|
|
|
'lng': '',
|
|
|
|
};
|
|
|
|
_scrollController = ScrollController();
|
|
|
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
|
|
|
_uploadImageProvider.mentou.process = 0.01;
|
|
...
|
...
|
@@ -65,23 +75,22 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
|
|
|
|
///获取店铺信息
|
|
|
|
_getStoreBaseinfo() async {
|
|
|
|
Map<String, String> params = {
|
|
|
|
'sellerid': Provider.of<UserModel>(context, listen: false).user.sellerid,
|
|
|
|
"uid": Provider.of<UserModel>(context, listen: false).user.openid,
|
|
|
|
};
|
|
|
|
bool success =
|
|
|
|
await _baseIndoProvider.getCustomerActivityBaseinfo(context, params);
|
|
|
|
if (success) {
|
|
|
|
_nameController.text = _baseIndoProvider.baseInfoSunModel.name;
|
|
|
|
_uploadImageProvider.touxiang.qiniuUrl =
|
|
|
|
_baseIndoProvider.baseInfoSunModel.photo;
|
|
|
|
_uploadImageProvider.erweima.qiniuUrl =
|
|
|
|
_baseIndoProvider.baseInfoSunModel.qrcode;
|
|
|
|
_phoneController.text = _baseIndoProvider.baseInfoSunModel.phone;
|
|
|
|
// _positionController.text = _baseIndoProvider.baseInfoSunModel.position;
|
|
|
|
_uploadImageProvider.imgSizeErweima = 64;
|
|
|
|
// setState(() {});
|
|
|
|
_uploadImageProvider.notifyListeners();
|
|
|
|
GetSellerInfoSunModel itemModel =
|
|
|
|
await _baseIndoProvider.getSellerById(context);
|
|
|
|
if (itemModel != null) {
|
|
|
|
_nameController.text = itemModel.data.sellername;
|
|
|
|
_phoneController.text = itemModel.data.sellerTel;
|
|
|
|
_timeController.text = itemModel.data.dailyTime;
|
|
|
|
_addressController.text = itemModel.data.realAddress;
|
|
|
|
_introductionController.text = itemModel.data.sellerdesc;
|
|
|
|
_uploadImageProvider.mentou.qiniuUrl = itemModel.data.sellerImage;
|
|
|
|
// _uploadImageProvider.notifyListeners();
|
|
|
|
mapAddress = {
|
|
|
|
"address": itemModel.data.mapAddress,
|
|
|
|
'lat': itemModel.data.lat,
|
|
|
|
'lng': itemModel.data.long,
|
|
|
|
};
|
|
|
|
setState(() {});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -92,48 +101,51 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
}
|
|
|
|
|
|
|
|
/// 修改店铺基本信息
|
|
|
|
_setStoreBaseinfo() async {
|
|
|
|
_setSellerInfoById() async {
|
|
|
|
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
|
|
|
|
|
|
|
|
User user = Provider.of<UserModel>(context, listen: false).user;
|
|
|
|
Map<String, String> params = {
|
|
|
|
'sellerid': user.sellerid,
|
|
|
|
"uid": user.openid,
|
|
|
|
"name": _nameController.text.trim().length == 0
|
|
|
|
? user.sellername
|
|
|
|
: _nameController.text.trim(),
|
|
|
|
"photo": _uploadImageProvider.touxiang.qiniuUrl.trim().length == 0
|
|
|
|
? 'http://nosqn.colorcun.com/yd_person.png'
|
|
|
|
: _uploadImageProvider.touxiang.qiniuUrl,
|
|
|
|
// "position": _positionController.text.trim().length == 0
|
|
|
|
// ? '经理'
|
|
|
|
// : _positionController.text,
|
|
|
|
Map<String, dynamic> params = {
|
|
|
|
'id': user.sellerid,
|
|
|
|
};
|
|
|
|
if (_phoneController.text.trim().length == 0) {
|
|
|
|
if (user.userphone != null) {
|
|
|
|
params['phone'] = user.userphone;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
params['phone'] = _phoneController.text.trim();
|
|
|
|
|
|
|
|
params['name'] = _nameController.text;
|
|
|
|
|
|
|
|
if (_uploadImageProvider.mentou.file != null &&
|
|
|
|
_uploadImageProvider.mentou.file != '') {
|
|
|
|
params['image'] =
|
|
|
|
await MultipartFile.fromFile(_uploadImageProvider.mentou.path);
|
|
|
|
}
|
|
|
|
|
|
|
|
params['phone'] = _phoneController.text;
|
|
|
|
|
|
|
|
if (mapAddress != null && mapAddress['address'] != '') {
|
|
|
|
params['map_address'] = mapAddress['address'];
|
|
|
|
}
|
|
|
|
if (_uploadImageProvider.erweima.qiniuUrl != null &&
|
|
|
|
_uploadImageProvider.erweima.qiniuUrl != '') {
|
|
|
|
params['qrcode'] = _uploadImageProvider.erweima.qiniuUrl;
|
|
|
|
if (mapAddress != null && mapAddress['lng'] != '') {
|
|
|
|
params['long'] = mapAddress['lng'];
|
|
|
|
}
|
|
|
|
if (_baseIndoProvider.baseInfoSunModel != null) {
|
|
|
|
params['id'] = _baseIndoProvider.baseInfoSunModel.id;
|
|
|
|
if (mapAddress != null && mapAddress['lat'] != '') {
|
|
|
|
params['lat'] = mapAddress['lat'];
|
|
|
|
}
|
|
|
|
bool isSuccess =
|
|
|
|
await _baseIndoProvider.setCustomerActivityBaseinfo(context, params);
|
|
|
|
// _baseIndoProvider.baseInfoSunModel = null;
|
|
|
|
if (isSuccess) {
|
|
|
|
_uploadImageProvider.touxiang.file = null;
|
|
|
|
_uploadImageProvider.erweima.file = null;
|
|
|
|
//成功之后跳回前一个页面
|
|
|
|
// bus.emit('refresh_coupon_list');
|
|
|
|
|
|
|
|
params['real_address'] = _addressController.text;
|
|
|
|
|
|
|
|
params['sellerdesc'] = _introductionController.text;
|
|
|
|
|
|
|
|
params['daily_time'] = _timeController.text;
|
|
|
|
|
|
|
|
FormData formData = FormData.fromMap(params);
|
|
|
|
|
|
|
|
SetSellerInfoSunModel sunModel =
|
|
|
|
await _baseIndoProvider.setSellerInfoById(context, formData);
|
|
|
|
if (sunModel != null) {
|
|
|
|
//修改成功
|
|
|
|
Utils.showToast('保存成功');
|
|
|
|
EventBus().emit('changeStatusColor');
|
|
|
|
Navigator.pop(context, true);
|
|
|
|
Navigator.pop(context);
|
|
|
|
} else {
|
|
|
|
// Utils.showToast('保存失败');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -191,7 +203,11 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
borderSide: BorderSide.none,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
onChanged: (value) {},
|
|
|
|
onChanged: (value) {
|
|
|
|
// if (editingController == _nameController) {
|
|
|
|
// _nameController.text = value;
|
|
|
|
// }
|
|
|
|
},
|
|
|
|
onEditingComplete: () {
|
|
|
|
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
|
|
|
|
},
|
|
...
|
...
|
@@ -224,10 +240,12 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
Widget child = Stack(
|
|
|
|
children: <Widget>[
|
|
|
|
PhotoPreview(
|
|
|
|
initialIndex: index,
|
|
|
|
photoList: imgs,
|
|
|
|
isShow: isShow,
|
|
|
|
dashName: dashName)
|
|
|
|
initialIndex: index,
|
|
|
|
photoList: imgs,
|
|
|
|
isShow: isShow,
|
|
|
|
dashName: dashName,
|
|
|
|
needMask: false,
|
|
|
|
)
|
|
|
|
],
|
|
|
|
);
|
|
|
|
return child;
|
|
...
|
...
|
@@ -248,15 +266,12 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
}
|
|
|
|
});
|
|
|
|
if (pickedFile != null) {
|
|
|
|
if (title == '头像') {
|
|
|
|
_uploadImageProvider.imgSizeTouxiang = 64;
|
|
|
|
_uploadImageProvider.touxiang.qiniuUrl = null;
|
|
|
|
} else {
|
|
|
|
_uploadImageProvider.imgSizeErweima = 64;
|
|
|
|
_uploadImageProvider.erweima.qiniuUrl = null;
|
|
|
|
}
|
|
|
|
UploadImageUtil().startUploadOnly(context, File(pickedFile.path),
|
|
|
|
title == '头像' ? 0 : 1, true, _uploadImageProvider);
|
|
|
|
_uploadImageProvider.imgSizeMenTou = 64;
|
|
|
|
_uploadImageProvider.mentou.qiniuUrl = null;
|
|
|
|
_uploadImageProvider.mentou.file = File(pickedFile.path);
|
|
|
|
_uploadImageProvider.mentou.path = pickedFile.path;
|
|
|
|
// UploadImageUtil().startUploadOnly(
|
|
|
|
// context, File(pickedFile.path), 2, true, _uploadImageProvider);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -372,13 +387,13 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
return InkWell(
|
|
|
|
onTap: () {
|
|
|
|
Utils.getPickPermission(context, () async {
|
|
|
|
Map address = await NavigatorUtil.goMapChoicePointPage(context);
|
|
|
|
if (address != null) {
|
|
|
|
mapAddress = await NavigatorUtil.goMapChoicePointPage(context);
|
|
|
|
if (mapAddress != null) {
|
|
|
|
setState(() {
|
|
|
|
storeAddress = address['address'];
|
|
|
|
// createStoreModel.storeInfo?.address = storeAddress;
|
|
|
|
// createStoreModel.storeInfo?.lat = address['lat'];
|
|
|
|
// createStoreModel.storeInfo?.lng = address['lng'];
|
|
|
|
// storeMapAddress = address['address'];
|
|
|
|
// // createStoreModel.storeInfo?.address = storeAddress;
|
|
|
|
// // createStoreModel.storeInfo?.lat = address['lat'];
|
|
|
|
// // createStoreModel.storeInfo?.lng = address['lng'];
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}, Permission.location);
|
|
...
|
...
|
@@ -397,15 +412,16 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
fontSize: ScreenUtil().setSp(34)),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
HEmptyView(20),
|
|
|
|
Spacer(),
|
|
|
|
Text(hintText,
|
|
|
|
style: TextStyle(
|
|
|
|
color: hintText == '点击选择'
|
|
|
|
? MyColours.color_999999
|
|
|
|
: MyColours.color_333333,
|
|
|
|
fontSize: ScreenUtil().setSp(32),
|
|
|
|
)),
|
|
|
|
HEmptyView(40),
|
|
|
|
Expanded(
|
|
|
|
child: Text(hintText,
|
|
|
|
textAlign: TextAlign.right,
|
|
|
|
style: TextStyle(
|
|
|
|
color: hintText == '点击选择'
|
|
|
|
? MyColours.color_999999
|
|
|
|
: MyColours.color_333333,
|
|
|
|
fontSize: ScreenUtil().setSp(32),
|
|
|
|
))),
|
|
|
|
HEmptyView(20),
|
|
|
|
Image.asset(
|
|
|
|
Utils.getImgPath('arr_right_gray'),
|
|
...
|
...
|
@@ -422,7 +438,8 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
Widget build(BuildContext context) {
|
|
|
|
_uploadImageProvider =
|
|
|
|
Provider.of<UploadImageProvider>(context, listen: true);
|
|
|
|
_baseIndoProvider = Provider.of<BaseIndoProvider>(context, listen: true);
|
|
|
|
_baseIndoProvider =
|
|
|
|
Provider.of<StoreBaseIndoProvider>(context, listen: true);
|
|
|
|
return Scaffold(
|
|
|
|
backgroundColor: MyColours.color_fefefe,
|
|
|
|
appBar: SystemAppBar(
|
|
...
|
...
|
@@ -504,7 +521,7 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
horizontal: ScreenUtil().setWidth(40),
|
|
|
|
vertical: ScreenUtil().setWidth(40),
|
|
|
|
),
|
|
|
|
child: _select('地图地址', '点击选择')),
|
|
|
|
child: _select('地图地址', mapAddress['address'])),
|
|
|
|
VEmptyView(10),
|
|
|
|
Container(
|
|
|
|
height: ScreenUtil().setWidth(2),
|
|
...
|
...
|
@@ -549,7 +566,7 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { |
|
|
|
child: RoundButton(
|
|
|
|
onPressed: () {
|
|
|
|
//接口
|
|
|
|
_setStoreBaseinfo();
|
|
|
|
_setSellerInfoById();
|
|
|
|
},
|
|
|
|
text: '保存',
|
|
|
|
fontSize: 34,
|
...
|
...
|
|