|
|
@@ -27,30 +27,26 @@ class OpenRoom extends StatefulWidget {
|
|
|
|
|
|
class OpenRoomState extends State<OpenRoom> {
|
|
|
TextStyle titleStyle = TextStyle(color: Colors.white, fontSize: 14);
|
|
|
- TextStyle valStyle =
|
|
|
- TextStyle(color: Colors.white, fontSize: 15, fontWeight: FontWeight.w500);
|
|
|
+ TextStyle valStyle = TextStyle(color: Colors.white, fontSize: 15, fontWeight: FontWeight.w500);
|
|
|
|
|
|
- Map<String, dynamic> editRoomInfo = {
|
|
|
- "gameId": 1,
|
|
|
- "houseLevel": 1,
|
|
|
- "maxNumber": 10
|
|
|
- };
|
|
|
+ Map<String, dynamic> editRoomInfo = {"gameId": 1, "houseLevel": 1, "maxNumber": 10};
|
|
|
List<GameInfo> gameList = [];
|
|
|
List<HouseLevel> levelList = [];
|
|
|
|
|
|
void getFilePath() async {
|
|
|
- String filePath = await FilePicker.getFilePath(type: FileType.ANY);
|
|
|
- File _file = File(filePath);
|
|
|
+ File file = await FilePicker.getFile(type: FileType.ANY);
|
|
|
+ if (file == null) return;
|
|
|
+ print(file.statSync());
|
|
|
Toast.show(context, '加载中', -1, 'loading');
|
|
|
Result res = await HttpManager.post("assets/uploadFile", data: {
|
|
|
- "file": UploadFileInfo(_file, filePath),
|
|
|
+ "file": UploadFileInfo(file, file.path),
|
|
|
});
|
|
|
Toast.hide();
|
|
|
if (res.success) {
|
|
|
setState(() {
|
|
|
editRoomInfo['video'] = res.data[0];
|
|
|
});
|
|
|
- } else {}
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void saveInfo() async {
|
|
|
@@ -66,15 +62,11 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
Toast.show(context, '请选择房间等级', 1500, 'info');
|
|
|
return;
|
|
|
}
|
|
|
- if (editRoomInfo['houseType'] == '1' &&
|
|
|
- (editRoomInfo['gameHouseId'] == null ||
|
|
|
- editRoomInfo['gameHouseId'] == '')) {
|
|
|
+ if (editRoomInfo['houseType'] == '1' && (editRoomInfo['gameHouseId'] == null || editRoomInfo['gameHouseId'] == '')) {
|
|
|
Toast.show(context, '请录入游戏房间号', 1500, 'info');
|
|
|
return;
|
|
|
}
|
|
|
- if (editRoomInfo['houseType'] == '1' &&
|
|
|
- (editRoomInfo['gameHousePassword'] == null ||
|
|
|
- editRoomInfo['gameHousePassword'] == '')) {
|
|
|
+ if (editRoomInfo['houseType'] == '1' && (editRoomInfo['gameHousePassword'] == null || editRoomInfo['gameHousePassword'] == '')) {
|
|
|
Toast.show(context, '请录入游戏房间密码', 1500, 'info');
|
|
|
return;
|
|
|
}
|
|
|
@@ -85,8 +77,7 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
chooseLevelInfo = item;
|
|
|
}
|
|
|
}
|
|
|
- if (StoreProvider.of<AppState>(context).state.userInfo.moneyCoin <
|
|
|
- chooseLevelInfo.entryCoin) {
|
|
|
+ if (StoreProvider.of<AppState>(context).state.userInfo.moneyCoin < chooseLevelInfo.entryCoin) {
|
|
|
return;
|
|
|
}
|
|
|
} else {
|
|
|
@@ -114,23 +105,15 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
);
|
|
|
return;
|
|
|
}
|
|
|
- editRoomInfo['createUser'] =
|
|
|
- StoreProvider.of<AppState>(context).state.userInfo.id;
|
|
|
+ editRoomInfo['createUser'] = StoreProvider.of<AppState>(context).state.userInfo.id;
|
|
|
Toast.show(context, '加载中', -1, 'loading');
|
|
|
Result res = await HttpManager.post("houseInfo/save", data: editRoomInfo);
|
|
|
Toast.hide();
|
|
|
if (res.success) {
|
|
|
- HttpManager.post("houseInfo/join", data: {
|
|
|
- "houseId": res.data,
|
|
|
- "userId": StoreProvider.of<AppState>(context).state.userInfo.id
|
|
|
- });
|
|
|
+ HttpManager.post("houseInfo/join", data: {"houseId": res.data, "userId": StoreProvider.of<AppState>(context).state.userInfo.id});
|
|
|
Toast.show(context, '创建成功', 1500, 'success');
|
|
|
Future.delayed(Duration(milliseconds: 1500), () {
|
|
|
- Navigator.pushReplacement(
|
|
|
- context,
|
|
|
- new CupertinoPageRoute(
|
|
|
- builder: (context) =>
|
|
|
- new RoomInfo(roomId: res.data.toString())));
|
|
|
+ Navigator.pushReplacement(context, new CupertinoPageRoute(builder: (context) => new RoomInfo(roomId: res.data.toString())));
|
|
|
});
|
|
|
} else {}
|
|
|
}
|
|
|
@@ -147,11 +130,7 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
gameList = _list;
|
|
|
if (res.data.length > 0) {
|
|
|
editRoomInfo['gameId'] = res.data[0]['id'];
|
|
|
- editRoomInfo['houseName'] =
|
|
|
- StoreProvider.of<AppState>(context).state.userInfo.nickname +
|
|
|
- '的' +
|
|
|
- res.data[0]['shortName'] +
|
|
|
- '房间';
|
|
|
+ editRoomInfo['houseName'] = StoreProvider.of<AppState>(context).state.userInfo.nickname + '的' + res.data[0]['shortName'] + '房间';
|
|
|
editRoomInfo['houseAbstract'] = res.data[0]['profile'] ?? '';
|
|
|
}
|
|
|
});
|
|
|
@@ -212,8 +191,7 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
child: FlatButton(
|
|
|
highlightColor: PRIMARY_COLOR,
|
|
|
padding: EdgeInsets.only(right: 0),
|
|
|
- child: Text('规则',
|
|
|
- style: TextStyle(color: Colors.white, fontSize: 13)),
|
|
|
+ child: Text('规则', style: TextStyle(color: Colors.white, fontSize: 13)),
|
|
|
onPressed: () {},
|
|
|
),
|
|
|
)
|
|
|
@@ -274,11 +252,8 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
Padding(
|
|
|
padding: EdgeInsets.only(top: 12),
|
|
|
child: Text(
|
|
|
- editRoomInfo.containsKey('video')
|
|
|
- ? '已选择'
|
|
|
- : '不上传则自动使用官方默认视频',
|
|
|
- style: TextStyle(
|
|
|
- color: Color(0xFF9BA0AE), fontSize: 13),
|
|
|
+ editRoomInfo.containsKey('video') ? '已选择' : '不上传则自动使用官方默认视频',
|
|
|
+ style: TextStyle(color: Color(0xFF9BA0AE), fontSize: 13),
|
|
|
),
|
|
|
)
|
|
|
],
|
|
|
@@ -388,24 +363,17 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
children: <Widget>[
|
|
|
Padding(
|
|
|
padding: EdgeInsets.only(right: 6),
|
|
|
- child: Image.asset('images/icon_jinbi_da_bai.png',
|
|
|
- width: 20),
|
|
|
+ child: Image.asset('images/icon_jinbi_da_bai.png', width: 20),
|
|
|
),
|
|
|
Text(
|
|
|
'×' + (chooseLevelInfo.entryCoin ?? 0).toString(),
|
|
|
- style: TextStyle(
|
|
|
- color: Colors.white,
|
|
|
- fontSize: 16,
|
|
|
- fontWeight: FontWeight.w500),
|
|
|
+ style: TextStyle(color: Colors.white, fontSize: 16, fontWeight: FontWeight.w500),
|
|
|
),
|
|
|
Padding(
|
|
|
padding: EdgeInsets.only(left: 20),
|
|
|
child: Text(
|
|
|
'创建房间',
|
|
|
- style: TextStyle(
|
|
|
- color: Colors.white,
|
|
|
- fontSize: 16,
|
|
|
- fontWeight: FontWeight.w500),
|
|
|
+ style: TextStyle(color: Colors.white, fontSize: 16, fontWeight: FontWeight.w500),
|
|
|
),
|
|
|
)
|
|
|
],
|
|
|
@@ -502,19 +470,14 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
new Picker(
|
|
|
confirmText: '确定',
|
|
|
cancelText: "取消",
|
|
|
- adapter: PickerDataAdapter<String>(
|
|
|
- pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
+ adapter: PickerDataAdapter<String>(pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
changeToFirst: true,
|
|
|
textAlign: TextAlign.left,
|
|
|
columnPadding: const EdgeInsets.all(8.0),
|
|
|
onConfirm: (Picker picker, List value) {
|
|
|
setState(() {
|
|
|
editRoomInfo['gameId'] = gameList[value[0]].id;
|
|
|
- editRoomInfo['houseName'] =
|
|
|
- StoreProvider.of<AppState>(context).state.userInfo.nickname +
|
|
|
- '的' +
|
|
|
- gameList[value[0]].shortName +
|
|
|
- '房间';
|
|
|
+ editRoomInfo['houseName'] = StoreProvider.of<AppState>(context).state.userInfo.nickname + '的' + gameList[value[0]].shortName + '房间';
|
|
|
editRoomInfo['houseAbstract'] = gameList[value[0]].profile ?? '';
|
|
|
});
|
|
|
}).showModal(this.context);
|
|
|
@@ -530,8 +493,7 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
new Picker(
|
|
|
confirmText: '确定',
|
|
|
cancelText: "取消",
|
|
|
- adapter: PickerDataAdapter<String>(
|
|
|
- pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
+ adapter: PickerDataAdapter<String>(pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
changeToFirst: true,
|
|
|
textAlign: TextAlign.left,
|
|
|
columnPadding: const EdgeInsets.all(8.0),
|
|
|
@@ -551,8 +513,7 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
new Picker(
|
|
|
confirmText: '确定',
|
|
|
cancelText: "取消",
|
|
|
- adapter: PickerDataAdapter<String>(
|
|
|
- pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
+ adapter: PickerDataAdapter<String>(pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
changeToFirst: true,
|
|
|
textAlign: TextAlign.left,
|
|
|
columnPadding: const EdgeInsets.all(8.0),
|
|
|
@@ -568,14 +529,7 @@ typedef int OnTapHomeMenu();
|
|
|
typedef ValueChanged<T> = void Function(T value);
|
|
|
|
|
|
class ChooseContent extends StatelessWidget {
|
|
|
- ChooseContent(
|
|
|
- {Key key,
|
|
|
- this.title,
|
|
|
- this.val,
|
|
|
- this.chooseLevelInfo,
|
|
|
- this.isLevel = false,
|
|
|
- this.onTapHomeMenu})
|
|
|
- : super(key: key);
|
|
|
+ ChooseContent({Key key, this.title, this.val, this.chooseLevelInfo, this.isLevel = false, this.onTapHomeMenu}) : super(key: key);
|
|
|
final String title;
|
|
|
final String val;
|
|
|
final OnTapHomeMenu onTapHomeMenu;
|
|
|
@@ -610,24 +564,15 @@ class ChooseContent extends StatelessWidget {
|
|
|
),
|
|
|
Padding(
|
|
|
padding: EdgeInsets.only(left: 20, right: 2),
|
|
|
- child: Image.asset('images/icon_jinbi_da_bai.png',
|
|
|
- width: 20),
|
|
|
+ child: Image.asset('images/icon_jinbi_da_bai.png', width: 20),
|
|
|
),
|
|
|
Text(
|
|
|
'×' + (chooseLevelInfo.entryCoin ?? 0).toString(),
|
|
|
- style: TextStyle(
|
|
|
- color: Colors.white,
|
|
|
- fontSize: 15,
|
|
|
- fontWeight: FontWeight.w500),
|
|
|
+ style: TextStyle(color: Colors.white, fontSize: 15, fontWeight: FontWeight.w500),
|
|
|
)
|
|
|
],
|
|
|
)
|
|
|
- : Text(val ?? '',
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15,
|
|
|
- color: Colors.white,
|
|
|
- fontWeight: FontWeight.w500),
|
|
|
- textAlign: TextAlign.right),
|
|
|
+ : Text(val ?? '', style: TextStyle(fontSize: 15, color: Colors.white, fontWeight: FontWeight.w500), textAlign: TextAlign.right),
|
|
|
),
|
|
|
Image.asset('images/icon_inter.png', width: 24)
|
|
|
],
|
|
|
@@ -639,8 +584,7 @@ class ChooseContent extends StatelessWidget {
|
|
|
}
|
|
|
|
|
|
class InputContent extends StatefulWidget {
|
|
|
- InputContent({Key key, this.title, this.value, this.onTextChange})
|
|
|
- : super(key: key);
|
|
|
+ InputContent({Key key, this.title, this.value, this.onTextChange}) : super(key: key);
|
|
|
final String title;
|
|
|
final String value;
|
|
|
final ValueChanged onTextChange;
|
|
|
@@ -673,16 +617,14 @@ class InputContentState extends State<InputContent> {
|
|
|
child: TextField(
|
|
|
controller: _controller,
|
|
|
textAlign: TextAlign.end,
|
|
|
- style: TextStyle(
|
|
|
- fontSize: 15, color: Colors.white, fontWeight: FontWeight.w500),
|
|
|
+ style: TextStyle(fontSize: 15, color: Colors.white, fontWeight: FontWeight.w500),
|
|
|
maxLength: 10,
|
|
|
decoration: InputDecoration(
|
|
|
hintText: "请输入" + widget.title,
|
|
|
hintStyle: TextStyle(color: Color(0xFF727785), fontSize: 13),
|
|
|
prefixIcon: Padding(
|
|
|
padding: EdgeInsets.symmetric(vertical: 12),
|
|
|
- child: Text(widget.title,
|
|
|
- style: TextStyle(fontSize: 14, color: Colors.white)),
|
|
|
+ child: Text(widget.title, style: TextStyle(fontSize: 14, color: Colors.white)),
|
|
|
),
|
|
|
border: InputBorder.none,
|
|
|
counterStyle: TextStyle(fontSize: 0)),
|