图片复现问题
parent
818b08a5f3
commit
ef5b1ff229
|
@ -7,7 +7,6 @@ import 'package:qhd_prevention/customWidget/toast_util.dart';
|
|||
import 'package:qhd_prevention/http/ApiService.dart';
|
||||
import 'package:qhd_prevention/pages/my_appbar.dart';
|
||||
|
||||
|
||||
class PhotoItem {
|
||||
final String id;
|
||||
final String filePath;
|
||||
|
@ -16,13 +15,13 @@ class PhotoItem {
|
|||
PhotoItem({
|
||||
required this.id,
|
||||
required this.filePath,
|
||||
required this.type,//1 网络 2 本地
|
||||
required this.type, //1 网络 2 本地
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
class DangerImageUpdataPage extends StatefulWidget {
|
||||
const DangerImageUpdataPage(this.id, {super.key});
|
||||
const DangerImageUpdataPage(this.id, {super.key, required this.imgList});
|
||||
final List<PhotoItem> imgList;
|
||||
|
||||
final String id;
|
||||
|
||||
|
@ -31,40 +30,39 @@ class DangerImageUpdataPage extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _DangerImageUpdataPageState extends State<DangerImageUpdataPage> {
|
||||
late List<PhotoItem> _imgList = [];
|
||||
|
||||
List<PhotoItem> _imgList = [];
|
||||
|
||||
List<String> _yinHuanImages = [];
|
||||
// List<dynamic> alreadyImageList=[];
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
// TODO: implement initState
|
||||
super.initState();
|
||||
|
||||
_imgList = widget.imgList;
|
||||
_getAlreadyUpImages();
|
||||
}
|
||||
|
||||
Future<void> _getAlreadyUpImages() async {
|
||||
try {
|
||||
|
||||
final result = await ApiService.getAlreadyUpImages(widget.id);
|
||||
if (result['result'] == 'success') {
|
||||
final List<dynamic> newList = result['imgs'] ?? [];
|
||||
setState(() {
|
||||
for(int i=0;i<newList.length;i++){
|
||||
_imgList.add(PhotoItem(
|
||||
id: newList[i]["IMGFILES_ID"], // 新图片没有ID
|
||||
filePath: newList[i]["FILEPATH"],
|
||||
for (Map item in newList) {
|
||||
String id = item['IMGFILES_ID'] ?? '';
|
||||
String filePath = item['FILEPATH'] ?? '';
|
||||
_imgList.add(
|
||||
PhotoItem(
|
||||
id: id, // 新图片没有ID
|
||||
filePath: ApiService.baseImgPath+filePath,
|
||||
type: "1",
|
||||
)
|
||||
),
|
||||
);
|
||||
_yinHuanImages.add(ApiService.baseImgPath +newList[i]["FILEPATH"]);
|
||||
}
|
||||
// alreadyImageList.addAll(newList);
|
||||
});
|
||||
|
||||
}else{
|
||||
}
|
||||
|
||||
});
|
||||
} else {
|
||||
ToastUtil.showNormal(context, "加载数据失败");
|
||||
// _showMessage('加载数据失败');
|
||||
}
|
||||
|
@ -81,43 +79,31 @@ class _DangerImageUpdataPageState extends State<DangerImageUpdataPage> {
|
|||
appBar: MyAppbar(title: "检查照片"),
|
||||
body: Column(
|
||||
children: [
|
||||
|
||||
RepairedPhotoSection(
|
||||
title: "检查照片",
|
||||
maxCount: 4,
|
||||
mediaType: MediaType.image,
|
||||
isShowAI: false,
|
||||
initialMediaPaths: _yinHuanImages,
|
||||
initialMediaPaths: _imgList.map((e)=> e.filePath).toList(),
|
||||
onMediaAdded: (value) {
|
||||
setState(() {
|
||||
_imgList.add(PhotoItem(
|
||||
_imgList.add(
|
||||
PhotoItem(
|
||||
id: "", // 新图片没有ID
|
||||
filePath: value,
|
||||
type: "2",
|
||||
));
|
||||
_yinHuanImages.add(value);
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
onMediaRemoved: (path) {
|
||||
int delete=0;
|
||||
for(int i=0;i<_yinHuanImages.length;i++){
|
||||
if(_yinHuanImages[i]==path){
|
||||
delete=i;
|
||||
}
|
||||
}
|
||||
int delete = 0;
|
||||
_onImageRemoved(_imgList[delete]);
|
||||
_yinHuanImages.removeAt(delete);
|
||||
_imgList.removeAt(delete);
|
||||
|
||||
},
|
||||
onAiIdentify: () {
|
||||
|
||||
}, onChanged: (List<File> value) {
|
||||
|
||||
},
|
||||
|
||||
onAiIdentify: () {},
|
||||
onChanged: (List<File> value) {},
|
||||
),
|
||||
|
||||
// 下一步按钮
|
||||
|
@ -135,23 +121,16 @@ class _DangerImageUpdataPageState extends State<DangerImageUpdataPage> {
|
|||
),
|
||||
],
|
||||
),
|
||||
child:
|
||||
SizedBox(
|
||||
child: SizedBox(
|
||||
width: screenWidth - 30,
|
||||
height: 50,
|
||||
child: TextButton(
|
||||
onPressed: () {
|
||||
if(_imgList.length>4){
|
||||
onPressed: () async {
|
||||
if (_imgList.length > 4) {
|
||||
ToastUtil.showNormal(context, "图片不能大于4张");
|
||||
return;
|
||||
}
|
||||
for(int i=0;i<_imgList.length;i++){
|
||||
if(_imgList[i].type=="2") {
|
||||
_addImgFiles(_yinHuanImages[i], "14", widget.id);
|
||||
}
|
||||
}
|
||||
ToastUtil.showNormal(context, "提交成功");
|
||||
Navigator.pop(context);
|
||||
_submitAll();
|
||||
},
|
||||
child: Text(
|
||||
"提交",
|
||||
|
@ -164,45 +143,57 @@ class _DangerImageUpdataPageState extends State<DangerImageUpdataPage> {
|
|||
),
|
||||
),
|
||||
),
|
||||
],)
|
||||
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
Future<void> _submitAll() async {
|
||||
int i = 0;
|
||||
for (PhotoItem item in _imgList) {
|
||||
if (item.type == '2') {
|
||||
String imgPath = await _addImgFiles(item.filePath, "14", widget.id);
|
||||
if (imgPath.isEmpty) {
|
||||
// 单张上传失败时的处理
|
||||
ToastUtil.showError(context, "第${i+1}张上传失败");
|
||||
return;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
Future<String> _addImgFiles(String imagePath,String type,String id) async {
|
||||
ToastUtil.showNormal(context, "提交成功");
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
Future<String> _addImgFiles(String imagePath, String type, String id) async {
|
||||
try {
|
||||
|
||||
final raw = await ApiService.addImgFiles( imagePath, type, id);
|
||||
final raw = await ApiService.addImgFiles(imagePath, type, id);
|
||||
if (raw['result'] == 'success') {
|
||||
return raw['imgPath'];
|
||||
}else{
|
||||
// _showMessage('反馈提交失败');
|
||||
Map pd = raw['pd'];
|
||||
final String img = pd['FILEPATH'];
|
||||
return img;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
} catch (e) {
|
||||
print('上传图片失败:$e');
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
// 出错时可以 Toast 或者在页面上显示错误状态
|
||||
print('加载首页数据失败:$e');
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
Future<String> _onImageRemoved(PhotoItem item) async {
|
||||
try {
|
||||
|
||||
final raw = await ApiService.onImageRemoved( item.id);
|
||||
final raw = await ApiService.onImageRemoved(item.id);
|
||||
if (raw['result'] == 'success') {
|
||||
return raw['imgPath'];
|
||||
}else{
|
||||
} else {
|
||||
// _showMessage('反馈提交失败');
|
||||
return "";
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
// 出错时可以 Toast 或者在页面上显示错误状态
|
||||
print('加载首页数据失败:$e');
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -182,7 +182,7 @@ class _DangerProjectPageState extends State<DangerProjectPage> {
|
|||
color: option['color'],
|
||||
screenWidth: screenWidth,
|
||||
onImageTap: () {
|
||||
pushPage(DangerImageUpdataPage(item["RECORDITEM_ID"]), context);
|
||||
_getAlreadyUpImages(item);
|
||||
},
|
||||
);
|
||||
}).toList(),
|
||||
|
@ -209,6 +209,34 @@ class _DangerProjectPageState extends State<DangerProjectPage> {
|
|||
),
|
||||
);
|
||||
}
|
||||
Future<void> _getAlreadyUpImages(Map item) async {
|
||||
try {
|
||||
final result = await ApiService.getAlreadyUpImages(item["RECORDITEM_ID"]);
|
||||
if (result['result'] == 'success') {
|
||||
final List<dynamic> newList = result['imgs'] ?? [];
|
||||
List<PhotoItem> imgList = [];
|
||||
for (Map item in newList) {
|
||||
String id = item['IMGFILES_ID'] ?? '';
|
||||
String filePath = item['FILEPATH'] ?? '';
|
||||
imgList.add(
|
||||
PhotoItem(
|
||||
id: id, // 新图片没有ID
|
||||
filePath: ApiService.baseImgPath+filePath,
|
||||
type: "1",
|
||||
),
|
||||
);
|
||||
}
|
||||
pushPage(DangerImageUpdataPage(item["RECORDITEM_ID"], imgList: imgList), context);
|
||||
|
||||
} else {
|
||||
ToastUtil.showNormal(context, "加载数据失败");
|
||||
// _showMessage('加载数据失败');
|
||||
}
|
||||
} catch (e) {
|
||||
// 出错时可以 Toast 或者在页面上显示错误状态
|
||||
print('加载数据失败:$e');
|
||||
}
|
||||
}
|
||||
|
||||
// 构建单选按钮
|
||||
Widget _buildOptionButton({
|
||||
|
|
282
pubspec.lock
282
pubspec.lock
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue