Commit 7fa21e86b083846a214140d8db58683414ee6450

Authored by wdn127929
1 parent 63f8d5c6

图片备注权限&&查看pc照片权限

... ... @@ -119,6 +119,7 @@ class Constant {
'前台',
],
'人数': ['管理员', '店长', '前台'],
'图片备注': ['管理员', '店长', '前台'],
'用餐类型': ['管理员', '店长', '前台'],
'消费金额': [
'管理员',
... ...
import 'dart:convert';
import 'dart:io';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:common_utils/common_utils.dart';
import 'package:easy_contact_picker/easy_contact_picker.dart';
import 'package:flutter/cupertino.dart';
... ... @@ -1872,7 +1873,10 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
///图片备注
Widget _imageRemark() {
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
bool show = Utils.getAuthority(context, '图片备注') ||
widget.uid ==
Provider.of<UserModel>(context, listen: false).user.openid;
return (!show && remarkImgs.length == 0) ? SizedBox(): Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
VEmptyView(36),
Text(
'图片备注',
... ... @@ -1880,45 +1884,77 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
style: TextStyle(color: MyColours.color_515151, fontSize: font(15)),
),
VEmptyView(30),
Padding(
padding: EdgeInsets.only(left: w(20), right: w(15)),
child: Consumer<UploadImageProvider>(builder: (context, model, _) {
return ImgPickerWidget(
scrollController: controller,
model: _uploadImageProvider,
maxImageNumber: 3,
maxRemind: '三',
imageList: remarkImgs,
uploadType: UploadType.RemarkImagesType,
deleteCallback: (int index) {
remarkImgs
.removeWhere((element) => element == remarkImgs[index]);
setState(() {});
//删除图片接口??????
},
callback: () {
print(remarkImgs);
for (UploadImgModel item in remarkImgs) {
if (item.process < 1) {
Utils.showToast('正在上传图片,请稍等');
return;
}
}
//接口,和订单绑定
List imageQiniuUrlList = [];
for (int i = 0; i < remarkImgs.length; i++) {
if (!remarkImgs[i].isUpload) {
imageQiniuUrlList.add({"url": remarkImgs[i].qiniuUrl});
}
}
show
? Padding(
padding: EdgeInsets.only(left: w(20), right: w(15)),
child:
Consumer<UploadImageProvider>(builder: (context, model, _) {
return ImgPickerWidget(
scrollController: controller,
model: _uploadImageProvider,
maxImageNumber: 3,
maxRemind: '三',
imageList: remarkImgs,
uploadType: UploadType.RemarkImagesType,
deleteCallback: (int index) {
remarkImgs
.removeWhere((element) => element == remarkImgs[index]);
setState(() {});
//删除图片接口??????
},
callback: () {
print(remarkImgs);
for (UploadImgModel item in remarkImgs) {
if (item.process < 1) {
Utils.showToast('正在上传图片,请稍等');
return;
}
}
//接口,和订单绑定
List imageQiniuUrlList = [];
for (int i = 0; i < remarkImgs.length; i++) {
if (!remarkImgs[i].isUpload) {
imageQiniuUrlList.add({"url": remarkImgs[i].qiniuUrl});
}
}
print(imageQiniuUrlList); //全部图片,详情接口请求后赋值,初始化数据
//调用接口绑定数据
// _setTablePhoto(
// context, imageQiniuUrlList);
},
);
})),
print(imageQiniuUrlList); //全部图片,详情接口请求后赋值,初始化数据
//调用接口绑定数据
// _setTablePhoto(
// context, imageQiniuUrlList);
},
);
}))
: GridView.builder(
controller: controller,
// padding: EdgeInsets.only(top: ScreenUtil().getAdapterSize(10)),
shrinkWrap: true,
itemCount: remarkImgs.length,
//SliverGridDelegateWithFixedCrossAxisCount 构建一个横轴固定数量Widget
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
//横轴元素个数
crossAxisCount: 3,
//纵轴间距
mainAxisSpacing: ScreenUtil().setWidth(40),
//横轴间距
crossAxisSpacing: ScreenUtil().setWidth(36),
//子组件宽高长度比例
childAspectRatio: 1.0),
itemBuilder: (BuildContext context, int index) {
return InkWell(
onTap: () {
///没有上传完成的不可以点击
_showPhotoView(context, index,
remarkImgs.map((e) => e.qiniuUrl).toList());
},
child: CachedNetworkImage(
imageUrl: remarkImgs[index].qiniuUrl,
fit: BoxFit.cover,
width: ScreenUtil().setWidth(100 * 2),
height: ScreenUtil().setWidth(100 * 2),
));
}),
VEmptyView(36),
Container(
height: ScreenUtil().setWidth(2),
... ... @@ -1961,6 +1997,11 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
///订单操作UI
Widget _operatingRecord() {
String rolename =
Provider.of<UserModel>(context, listen: false).user.role_name;
bool showimage = (rolename == '管理员' || rolename == '店长') &&
detailEntity.log_photo != null &&
detailEntity.log_photo != '';
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
// VEmptyView(30),
// MyDivider(double.infinity, w(0.5), color: MyColours.color_BFC4D4),
... ... @@ -1987,9 +2028,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
style:
TextStyle(color: MyColours.color_999999, fontSize: font(14)),
),
if (detailEntity.log_photo != null && detailEntity.log_photo != '')
HEmptyView(16),
if (detailEntity.log_photo != null && detailEntity.log_photo != '')
if (showimage) HEmptyView(16),
if (showimage)
InkWell(
onTap: () {
_showPhotoView(context, 0, [detailEntity.log_photo]);
... ... @@ -2010,7 +2050,9 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
itemBuilder: (context, index) {
ReserveActionLogSunModol data =
detailModel.reserveActionLogData[index];
bool show = data.logPhoto != null && data.logPhoto != '';
bool show = (rolename == '管理员' || rolename == '店长') &&
data.logPhoto != null &&
data.logPhoto != '';
return Container(
padding:
EdgeInsets.only(left: w(30), top: index == 0 ? w(16) : 0),
... ...