提交 8a35a394 authored 作者: maodou's avatar maodou

页面修改

上级 4f37ba39
......@@ -101,8 +101,8 @@ class _BuildItemState extends State<BuildItem> {
Widget _buildSection(ChapterModel model){
return Container(
color: Colors.white,
padding: const EdgeInsets.only(left: 60),
child: Text(model.name??'',style:TextStyle(fontSize: 12,color: model.seen ==0? Colours.c3:Colours.c9,height: 2),),
padding: const EdgeInsets.only(left: 60,bottom: 4),
child: Text(model.name??'',style:TextStyle(fontSize: 14,color: model.seen ==0? Colours.c3:Colours.c9,height: 2),),
);
}
}
......@@ -28,7 +28,7 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
child: Scaffold(
appBar: CustomAppBar(
backgroundColor: const Color(0xFFAB1941).withOpacity(0.02),
title: const Text('详情'),
title: const Text('详情',style: TextStyle(fontSize: 17),),
actions: [
CustomButton.icon(
padding: EdgeInsets.zero,
......@@ -66,7 +66,7 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
child: TabBar(
labelColor: AppTheme.primary,
// isScrollable: true,
labelStyle: TextStyle(fontSize: 15.w,height: 1.4,fontWeight: Fonts.medium),
labelStyle: TextStyle(fontSize: 15.w,height: 1.4,fontWeight: Fonts.boldSemi),
unselectedLabelColor: Colours.c9,
unselectedLabelStyle: TextStyle(fontSize: 15.w,height: 1.4),
indicatorSize: TabBarIndicatorSize.label,
......@@ -76,6 +76,10 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
controller: controller.tabController,
),
),
Container(
height: 1,
color: const Color(0xFFF9F9F9),
),
Expanded(
child: TabBarView(
controller: controller.tabController,
......@@ -185,7 +189,7 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
height: 35.w,
alignment: Alignment.center,
padding: EdgeInsets.symmetric(vertical: 8.w),
child: Text('阅读',style: TextStyle(fontSize: 13.w,color: AppTheme.primary,height: 1.5),),
child: Text('阅读',style: TextStyle(fontSize: 13.w,color: AppTheme.primary,height: 1.5,fontWeight: Fonts.boldSemi),),
),
),
)
......
......@@ -10,16 +10,16 @@ class BuildBook extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
decoration: const BoxDecoration(
// color: Colors.red,
gradient: LinearGradient(
colors: [Color(0xFFF7F5F5),Color(0xFFFFFFFF)],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
),
),
// decoration: const BoxDecoration(
// // color: Colors.red,
// gradient: LinearGradient(
// colors: [Color(0xFFF7F5F5),Color(0xFFFFFFFF)],
// begin: Alignment.topCenter,
// end: Alignment.bottomCenter,
// ),
// ),
// margin: const EdgeInsets.only(left: 10,right: 10,top: 10),
height: 125,
height: 150,
child: Row(
children: [
///左侧
......@@ -29,6 +29,8 @@ class BuildBook extends StatelessWidget {
children: [
CustomCard(
url: model.img??'',
height: 110.w,
width: 100.w,
)
],
),
......@@ -45,17 +47,17 @@ class BuildBook extends StatelessWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(model.bookName??'',style: TextStyle(fontSize: 16.w,fontWeight: Fonts.medium,color: Colours.c3),maxLines: 1,overflow: TextOverflow.ellipsis,),
Text(model.bookName??'',style: TextStyle(fontSize: 17.w,fontWeight: Fonts.medium,color: Colours.c3),maxLines: 1,overflow: TextOverflow.ellipsis,),
SizedBox(height: 5.w,),
Text(model.authors??'',style: TextStyle(fontSize: 13.w,fontWeight: FontWeight.w400,color: Colours.c6)),
Text(model.authors??'',style: TextStyle(fontSize: 14.w,fontWeight: FontWeight.w400,color: Colours.c6)),
],
),
Row(
children: [
Text('¥${model.vipPrice}',style: TextStyle(fontSize: 14.w,fontWeight: FontWeight.w500,color: AppTheme.primary)),
Text('¥${model.vipPrice}',style: TextStyle(fontSize: 15.w,fontWeight: FontWeight.w500,color: AppTheme.primary)),
Gaps.hGaps10,
Text('¥${model.price}',style: TextStyle(
fontSize: 12.w,color: Colours.c9,
fontSize: 13.w,color: Colours.c9,
decoration: TextDecoration.lineThrough,
decorationColor: Colours.c9, // 可选,指定删除线的颜色
decorationThickness: 1
......
......@@ -27,8 +27,8 @@ class _BuildStudyState extends State<BuildStudy> {
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(widget.model.rating??'',style: TextStyle(fontSize: 16.w,height: 1.5,fontWeight: Fonts.medium,color: AppTheme.primary)),
Text('/5.0',style: TextStyle(fontSize: 13.w,height: 1.5,fontWeight: Fonts.medium,color: Colours.c9),)
Text(widget.model.rating??'',style: TextStyle(fontSize: 18.w,height: 1.5,fontWeight: Fonts.medium,color: AppTheme.primary)),
Text('/5.0',style: TextStyle(fontSize: 15.w,height: 1.5,fontWeight: Fonts.medium,color: Colours.c9),)
],
),
AbsorbPointer(
......@@ -55,7 +55,7 @@ class _BuildStudyState extends State<BuildStudy> {
children: [
TextSpan(
text: widget.model.readNum.toString(),
style: TextStyle(fontSize: 16.w,color: Colours.c3,fontWeight: Fonts.medium,height: 1.3)
style: TextStyle(fontSize: 18.w,color: Colours.c3,fontWeight: Fonts.medium,height: 1.3)
),
// TextSpan(
// text: '万',
......
......@@ -12,93 +12,94 @@ class BookInfoPage extends StatelessWidget {
return Container(
color: Colors.white,
padding: EdgeInsets.symmetric(horizontal: 15.w,vertical: 18.w),
child: Column(
children: [
// 评分容器
Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('评分及书评',style: TextStyle(fontSize: 14.w,color: Colours.c3,height: 1.6,fontWeight: Fonts.medium),),
Row(
children: [
GestureDetector(
child: Text('查看全部',style: TextStyle(fontSize: 11.w,color: Colours.c9),),
onTap: (){
context.pushNamed(Routes.bookScore,queryParameters: {'book_id':'110'});
},
),
Gaps.hGaps5,
SizedBox(
width: 5.w,
height: 8.w,
// color: Colors.cyan,
child: Image.asset(
'assets/images/right_arrow.png',
),
)
]
)
],
),
Container(
margin: EdgeInsets.symmetric(vertical: 10.w),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
child: SingleChildScrollView(
child: Column(
children: [
// 评分容器
Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(model.rating??'',style: TextStyle(fontSize: 35.w,height: 1.5.w,fontWeight: Fonts.boldSemi,color: AppTheme.primary),),
AbsorbPointer(
absorbing: true,
child: CustomRating(
max: 5,
score:model.rating !=null ?double.parse(model.rating!):0,
star: Star(
progress: 7,
fillColor: AppTheme.primary,
size: 12.w,
emptyColor: Colours.cE2,
), onRating: (double a) {},
Text('评分及书评',style: TextStyle(fontSize: 14.w,color: Colours.c3,height: 1.6,fontWeight: Fonts.medium),),
Row(
children: [
GestureDetector(
child: Text('查看全部',style: TextStyle(fontSize: 11.w,color: Colours.c9),),
onTap: (){
context.pushNamed(Routes.bookScore,queryParameters: {'book_id':'110'});
},
),
),
],
),
Expanded(
child: SizedBox(
height: 90,
// color: Colors.green,
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.end,
children: List.generate(model.ratingList!.length, (index){
return _buildProgrss(5- index.toDouble(), model.ratingList![index].toDouble()/model.ratingCount!);
}).toList()
Gaps.hGaps5,
SizedBox(
width: 5.w,
height: 8.w,
// color: Colors.cyan,
child: Image.asset(
'assets/images/right_arrow.png',
),
Text('${model.ratingCount}个评分',style: TextStyle(fontSize: 9.w,height: 1.4,color: Colours.c9),)
],
)
]
)
],
),
Container(
margin: EdgeInsets.symmetric(vertical: 10.w),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(model.rating??'',style: TextStyle(fontSize: 35.w,height: 1.5.w,fontWeight: Fonts.boldSemi,color: AppTheme.primary),),
AbsorbPointer(
absorbing: true,
child: CustomRating(
max: 5,
score:model.rating !=null ?double.parse(model.rating!):0,
star: Star(
progress: 7,
fillColor: AppTheme.primary,
size: 12.w,
emptyColor: Colours.cE2,
), onRating: (double a) {},
),
),
],
),
Expanded(
child: SizedBox(
height: 90,
// color: Colors.green,
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.end,
children: List.generate(model.ratingList!.length, (index){
return _buildProgrss(5- index.toDouble(), model.ratingList![index].toDouble()/model.ratingCount!);
}).toList()
),
Text('${model.ratingCount}个评分',style: TextStyle(fontSize: 9.w,height: 1.4,color: Colours.c9),)
],
),
),
),
),
],
],
),
),
),
],
),
Container(height: 1,width: double.infinity,color: Colours.cF2,),
Gaps.vGaps15,
// 书籍信息
Column(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
],
),
Container(height: 1,width: double.infinity,color: Colours.cF2,),
Gaps.vGaps15,
// 书籍信息
Column(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
{'name':'书名','value':model.bookName},
{'name':'作者','value':model.authors},
{'name':'分类','value':model.categoryName},
......@@ -106,24 +107,25 @@ class BookInfoPage extends StatelessWidget {
{'name':'出版社','value':model.pressName},
{'name':'上架时间','value':Tools.dateFromMS(model.onsaleTime!.toInt(),pattern:'yyyy年MM月dd日' )},
].map((item){
return Row(
children: [
Container(
// color: Colors.cyan,
alignment: Alignment.centerRight,
width: 50,
child: Text(item['name'].toString(),style: const TextStyle(fontSize: 11,height: 2.1,color: Colours.c3),),
),
Gaps.hGaps20,
Container(
alignment: Alignment.centerLeft,
child: Text(item['value'].toString(),style: const TextStyle(fontSize: 11,height: 2.1,color: Colours.c9),textAlign: TextAlign.end,),
),
],
);
}).toList(),
)
],
return Row(
children: [
Container(
// color: Colors.cyan,
alignment: Alignment.centerRight,
width: 50,
child: Text(item['name'].toString(),style: const TextStyle(fontSize: 15,height: 2.1,color: Colours.c3),),
),
Gaps.hGaps20,
Container(
alignment: Alignment.centerLeft,
child: Text(item['value'].toString(),style: const TextStyle(fontSize: 15,height: 2.1,color: Colours.c9),textAlign: TextAlign.end,),
),
],
);
}).toList(),
)
],
),
),
);
}
......
......@@ -41,7 +41,8 @@ class Book extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(model.bookName??'',style: TextStyle(fontSize: 13.w,height: 1.5,color: Colours.c3),maxLines: 1,overflow: TextOverflow.ellipsis,),
Text(model.bookName??'',style: TextStyle(fontSize: 15.w,color: Colours.c3),maxLines: 1,overflow: TextOverflow.ellipsis,),
SizedBox(height: 6.w,),
Text(model.authors ??'',style: TextStyle(fontSize:12.w,height: 1.3,color: Colours.c6,),textAlign: TextAlign.left,),
],
),
......@@ -55,7 +56,7 @@ class Book extends StatelessWidget {
padding: EdgeInsets.symmetric(horizontal: 3.5.w),
child: Text(model.typeName,style: TextStyle(fontSize: 11.w,height: 1.3,color: model.type ==0||model.type ==1 ?Colours.c9:AppTheme.primary),),
),
model.type == 2? Text('继续学习',style: TextStyle(fontSize: 11.w,height: 1.3,color: AppTheme.primary,fontWeight: Fonts.medium),):const SizedBox()
model.type == 2? Text('继续学习',style: TextStyle(fontSize: 11.w,height: 1.3,color: AppTheme.primary,fontWeight: Fonts.boldSemi),):const SizedBox()
],
)
],
......
......@@ -18,7 +18,7 @@ class _LibraryPageState extends State<LibraryPage> {
title: const Text('图书馆'),
actions: [
IconButton(
icon: const Icon(Icons.search_rounded),
icon: Image.asset('assets/images/search.png'),
tooltip: 'Open shopping cart',
onPressed: () {
context.pushNamed(Routes.search);
......@@ -39,6 +39,7 @@ class _LibraryPageState extends State<LibraryPage> {
children: [
// _buildTab(controller),
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(child: _buildCategory()),
GestureDetector(
......@@ -46,19 +47,22 @@ class _LibraryPageState extends State<LibraryPage> {
controller.setShow(controller.show);
},
child: Container(
padding: EdgeInsets.symmetric(horizontal: 10.w),
padding: EdgeInsets.only(left: 10.w,right: 10.w,top: 3.w),
alignment: Alignment.center,
height: 38.w,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 12.w,
height: 12.w,
width: 15.w,
height: 15.w,
// color: Colors.red,
alignment: Alignment.center,
child: Image.asset(
'assets/images/filter.png',
fit: BoxFit.cover,
width: 15.w,
height: 15.w,
),
),
Gaps.hGaps5,
......
......@@ -89,7 +89,7 @@ class LoginController extends GetxController {
/// 测试账号
if (kDebugMode) {
phoneInput.text = '13521054068';
passwordInput.text = '123456';
passwordInput.text = 'zj123456';
}
super.onInit();
}
......
......@@ -61,36 +61,60 @@ class _MainPageState extends State<MainPage> with WidgetsBindingObserver{
BottomNavigationBarItem(
icon: Image.asset(
'assets/images/course.png',
width: 25,
height: 27.5,
fit: BoxFit.cover,
),
activeIcon:Image.asset(
'assets/images/course_select.png',
width: 25,
height: 27.5,
fit: BoxFit.cover,
),
label: '课程',
),
BottomNavigationBarItem(
icon: Image.asset(
'assets/images/library.png',
width: 25,
height: 27.5,
fit: BoxFit.cover,
),
activeIcon:Image.asset(
'assets/images/library_select.png',
width: 25,
height: 27.5,
fit: BoxFit.cover,
),
label: '图书馆',
),
BottomNavigationBarItem(
icon: Image.asset(
'assets/images/shujia.png',
width: 25,
height: 27.5,
fit: BoxFit.cover,
),
activeIcon:Image.asset(
'assets/images/shujia_select.png',
width: 25,
height: 27.5,
fit: BoxFit.cover,
),
label: '书架',
),
BottomNavigationBarItem(
icon: Image.asset(
'assets/images/mine.png',
width: 25,
height: 27.5,
fit: BoxFit.cover,
),
activeIcon:Image.asset(
'assets/images/mine_select.png',
width: 25,
height: 27.5,
fit: BoxFit.cover,
),
label: '我的',
)
......
......@@ -28,74 +28,22 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto
@override
Widget build(BuildContext context) {
return FutureBuilder(future: myController.getOrderInfo(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: const Text('订单评价'),
),);
}else{
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: const Text('订单评价'),
),
body: Column(
children: [
Expanded(
child: SingleChildScrollView(
child: Column(
children: [
ListView.builder(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemBuilder: (BuildContext context, int index) {
return listItem(
myController.orderInfoModel.bookList![index],
orderEvaluates,controllers);
},
itemCount:
myController.orderInfoModel.bookList?.length,
),
],
),
),
),
SizedBox(
height: 26.w,
),
Container(
margin: EdgeInsets.symmetric(horizontal: 10.w),
child: CustomGradientButton(
text: '提交评价',
isEnabled: myController.enable,
onPressed: () {
for(int i=0;i<orderEvaluates.length;i++){
orderEvaluates[i].comments=controllers[i].text.toString();
}
print(jsonEncode(orderEvaluates));
myController.UpOrderEvaluate(jsonEncode(orderEvaluates));
},
),
),
SizedBox(
height: 41.w,
)
],
),
);
/*GetBuilder<UserOrderEvaluateController>(
init:
UserOrderEvaluateController(widget.orderNum, widget.orderInfoModel),
builder: (controller) => Scaffold(
appBar: AppBar(
centerTitle: true,
title: const Text('订单评价'),
),
body: Column(
super.build(context);
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: const Text('订单评价'),
),
body: FutureBuilder(
future: myController.getOrderInfo(),
builder: (context, snapshot) {
if(snapshot.connectionState == ConnectionState.waiting){
return Container(
alignment: Alignment.center,
child: const CircularProgressIndicator(),
); // 加载中的指示
}else{
return Column(
children: [
Expanded(
child: SingleChildScrollView(
......@@ -106,11 +54,11 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto
shrinkWrap: true,
itemBuilder: (BuildContext context, int index) {
return listItem(
controller.orderInfoModel.bookList![index],
orderEvaluates,controllers,myController);
myController.orderInfoModel.bookList![index],
orderEvaluates,controllers);
},
itemCount:
controller.orderInfoModel.bookList?.length,
myController.orderInfoModel.bookList?.length,
),
],
),
......@@ -123,13 +71,13 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto
margin: EdgeInsets.symmetric(horizontal: 10.w),
child: CustomGradientButton(
text: '提交评价',
isEnabled: controller.enable,
isEnabled: myController.enable,
onPressed: () {
for(int i=0;i<orderEvaluates.length;i++){
orderEvaluates[i].comments=controllers[i].text.toString();
}
print(jsonEncode(orderEvaluates));
controller.UpOrderEvaluate(jsonEncode(orderEvaluates));
myController.UpOrderEvaluate(jsonEncode(orderEvaluates));
},
),
),
......@@ -137,12 +85,11 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto
height: 41.w,
)
],
),
));*/
}
},);
);
}
},
),
);
}
Widget listItem(BookListModel bookListModel,
......@@ -154,7 +101,6 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto
OrderEvaluate evaluate = OrderEvaluate(recordId: bookListModel.recordId);
orderEvaluates.add(evaluate);
controllers.add(textFieldController);
}else{
textFieldController = controllers[indexToUpdate];
}
......
......@@ -91,9 +91,9 @@ class ValidatorTool {
// 密码
static bool isValidPassword(String value) {
// RegExp passwordPattern = RegExp(r'^[A-Za-z0-9!@#\$%^&*()_+{}\[\]:;<>,.?~\\/-]{8,12}$');
RegExp passwordPattern = RegExp(r'^[A-Za-z0-9!@#\$%^&*()_+{}\[\]:;<>,.?~\\/-]{8,12}$');
// RegExp passwordPattern = RegExp(r'^(?=.*[A-Za-z])(?=.*\d)(?=.*[~@#%$*()_+{}\[\]:;<>,.?\\/-])[A-Za-z0-9~@#%$*()_+{}\[\]:;<>,.?\\/-]{8,12}$');
RegExp passwordPattern = RegExp(r'^\d{6}$');
// RegExp passwordPattern = RegExp(r'^\d{6}$');
return passwordPattern.hasMatch(value);
}
......
import 'package:flutter/cupertino.dart';
class AssetImageIconData extends IconData {
const AssetImageIconData(int codePoint)
: super(
codePoint,
fontFamily: 'AssetImage',
fontPackage: 'flutter',
);
}
\ No newline at end of file
......@@ -13,6 +13,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:extended_image/extended_image.dart';
import '../theme.dart';
import 'AssetImageIconData.dart';
part 'toast.dart';
......
......@@ -340,6 +340,7 @@ class CustomInputSearch extends StatelessWidget {
const CustomInputSearch({
Key? key,
this.iconData = Icons.search_rounded,
// this.iconData = AssetImageIconData('0xe001'),
this.hintText,
this.controller,
this.readOnly = false,
......@@ -368,6 +369,21 @@ class CustomInputSearch extends StatelessWidget {
height: 1.2,
),
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(360.w), // 设置圆角
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(360.0), // 设置圆角
borderSide: const BorderSide(
color: Colors.transparent, // 定义边框颜色
),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(360.0), // 设置圆角
borderSide: const BorderSide(
color: Colors.transparent, // 定义边框颜色
),
),
fillColor: Theme.of(context).colorScheme.tertiary,
contentPadding: _padding.subtract(EdgeInsets.symmetric(
horizontal: _padding.horizontal / 4,
......@@ -376,10 +392,10 @@ class CustomInputSearch extends StatelessWidget {
padding: EdgeInsets.symmetric(
horizontal: _padding.horizontal / 4,
),
child: Icon(
iconData,
size: 24.w,
color: const Color(0xFF858C94),
child: Image.asset(
"assets/images/search.png",
height: 18.w,
width: 18.w,
),
),
hintStyle: TextStyle(
......@@ -389,12 +405,12 @@ class CustomInputSearch extends StatelessWidget {
),
prefixIconConstraints: const BoxConstraints(),
hintText: hintText ?? '搜索',
enabledBorder: inputDecoration.enabledBorder?.copyWith(
borderSide: const BorderSide(color: Colors.transparent),
),
focusedBorder: inputDecoration.enabledBorder?.copyWith(
borderSide: const BorderSide(color: Colors.transparent),
),
// enabledBorder: inputDecoration.enabledBorder?.copyWith(
// borderSide: const BorderSide(color: Colors.transparent),
// ),
// focusedBorder: inputDecoration.enabledBorder?.copyWith(
// borderSide: const BorderSide(color: Colors.transparent),
// ),
disabledBorder: inputDecoration.enabledBorder?.copyWith(
borderSide: const BorderSide(color: Colors.transparent),
),
......
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论