Commit 7fa21e86b083846a214140d8db58683414ee6450

Authored by wdn127929
1 parent 63f8d5c6

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

@@ -119,6 +119,7 @@ class Constant { @@ -119,6 +119,7 @@ class Constant {
119 '前台', 119 '前台',
120 ], 120 ],
121 '人数': ['管理员', '店长', '前台'], 121 '人数': ['管理员', '店长', '前台'],
  122 + '图片备注': ['管理员', '店长', '前台'],
122 '用餐类型': ['管理员', '店长', '前台'], 123 '用餐类型': ['管理员', '店长', '前台'],
123 '消费金额': [ 124 '消费金额': [
124 '管理员', 125 '管理员',
1 import 'dart:convert'; 1 import 'dart:convert';
2 import 'dart:io'; 2 import 'dart:io';
3 3
  4 +import 'package:cached_network_image/cached_network_image.dart';
4 import 'package:common_utils/common_utils.dart'; 5 import 'package:common_utils/common_utils.dart';
5 import 'package:easy_contact_picker/easy_contact_picker.dart'; 6 import 'package:easy_contact_picker/easy_contact_picker.dart';
6 import 'package:flutter/cupertino.dart'; 7 import 'package:flutter/cupertino.dart';
@@ -1872,7 +1873,10 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -1872,7 +1873,10 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
1872 1873
1873 ///图片备注 1874 ///图片备注
1874 Widget _imageRemark() { 1875 Widget _imageRemark() {
1875 - return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ 1876 + bool show = Utils.getAuthority(context, '图片备注') ||
  1877 + widget.uid ==
  1878 + Provider.of<UserModel>(context, listen: false).user.openid;
  1879 + return (!show && remarkImgs.length == 0) ? SizedBox(): Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
1876 VEmptyView(36), 1880 VEmptyView(36),
1877 Text( 1881 Text(
1878 '图片备注', 1882 '图片备注',
@@ -1880,45 +1884,77 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -1880,45 +1884,77 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
1880 style: TextStyle(color: MyColours.color_515151, fontSize: font(15)), 1884 style: TextStyle(color: MyColours.color_515151, fontSize: font(15)),
1881 ), 1885 ),
1882 VEmptyView(30), 1886 VEmptyView(30),
1883 - Padding(  
1884 - padding: EdgeInsets.only(left: w(20), right: w(15)),  
1885 - child: Consumer<UploadImageProvider>(builder: (context, model, _) {  
1886 - return ImgPickerWidget(  
1887 - scrollController: controller,  
1888 - model: _uploadImageProvider,  
1889 - maxImageNumber: 3,  
1890 - maxRemind: '三',  
1891 - imageList: remarkImgs,  
1892 - uploadType: UploadType.RemarkImagesType,  
1893 - deleteCallback: (int index) {  
1894 - remarkImgs  
1895 - .removeWhere((element) => element == remarkImgs[index]);  
1896 - setState(() {});  
1897 - //删除图片接口??????  
1898 - },  
1899 - callback: () {  
1900 - print(remarkImgs);  
1901 - for (UploadImgModel item in remarkImgs) {  
1902 - if (item.process < 1) {  
1903 - Utils.showToast('正在上传图片,请稍等');  
1904 - return;  
1905 - }  
1906 - }  
1907 - //接口,和订单绑定  
1908 - List imageQiniuUrlList = [];  
1909 - for (int i = 0; i < remarkImgs.length; i++) {  
1910 - if (!remarkImgs[i].isUpload) {  
1911 - imageQiniuUrlList.add({"url": remarkImgs[i].qiniuUrl});  
1912 - }  
1913 - } 1887 + show
  1888 + ? Padding(
  1889 + padding: EdgeInsets.only(left: w(20), right: w(15)),
  1890 + child:
  1891 + Consumer<UploadImageProvider>(builder: (context, model, _) {
  1892 + return ImgPickerWidget(
  1893 + scrollController: controller,
  1894 + model: _uploadImageProvider,
  1895 + maxImageNumber: 3,
  1896 + maxRemind: '三',
  1897 + imageList: remarkImgs,
  1898 + uploadType: UploadType.RemarkImagesType,
  1899 + deleteCallback: (int index) {
  1900 + remarkImgs
  1901 + .removeWhere((element) => element == remarkImgs[index]);
  1902 + setState(() {});
  1903 + //删除图片接口??????
  1904 + },
  1905 + callback: () {
  1906 + print(remarkImgs);
  1907 + for (UploadImgModel item in remarkImgs) {
  1908 + if (item.process < 1) {
  1909 + Utils.showToast('正在上传图片,请稍等');
  1910 + return;
  1911 + }
  1912 + }
  1913 + //接口,和订单绑定
  1914 + List imageQiniuUrlList = [];
  1915 + for (int i = 0; i < remarkImgs.length; i++) {
  1916 + if (!remarkImgs[i].isUpload) {
  1917 + imageQiniuUrlList.add({"url": remarkImgs[i].qiniuUrl});
  1918 + }
  1919 + }
1914 1920
1915 - print(imageQiniuUrlList); //全部图片,详情接口请求后赋值,初始化数据  
1916 - //调用接口绑定数据  
1917 - // _setTablePhoto(  
1918 - // context, imageQiniuUrlList);  
1919 - },  
1920 - );  
1921 - })), 1921 + print(imageQiniuUrlList); //全部图片,详情接口请求后赋值,初始化数据
  1922 + //调用接口绑定数据
  1923 + // _setTablePhoto(
  1924 + // context, imageQiniuUrlList);
  1925 + },
  1926 + );
  1927 + }))
  1928 + : GridView.builder(
  1929 + controller: controller,
  1930 + // padding: EdgeInsets.only(top: ScreenUtil().getAdapterSize(10)),
  1931 + shrinkWrap: true,
  1932 + itemCount: remarkImgs.length,
  1933 +
  1934 + //SliverGridDelegateWithFixedCrossAxisCount 构建一个横轴固定数量Widget
  1935 + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
  1936 + //横轴元素个数
  1937 + crossAxisCount: 3,
  1938 + //纵轴间距
  1939 + mainAxisSpacing: ScreenUtil().setWidth(40),
  1940 + //横轴间距
  1941 + crossAxisSpacing: ScreenUtil().setWidth(36),
  1942 + //子组件宽高长度比例
  1943 + childAspectRatio: 1.0),
  1944 + itemBuilder: (BuildContext context, int index) {
  1945 + return InkWell(
  1946 + onTap: () {
  1947 + ///没有上传完成的不可以点击
  1948 + _showPhotoView(context, index,
  1949 + remarkImgs.map((e) => e.qiniuUrl).toList());
  1950 + },
  1951 + child: CachedNetworkImage(
  1952 + imageUrl: remarkImgs[index].qiniuUrl,
  1953 + fit: BoxFit.cover,
  1954 + width: ScreenUtil().setWidth(100 * 2),
  1955 + height: ScreenUtil().setWidth(100 * 2),
  1956 + ));
  1957 + }),
1922 VEmptyView(36), 1958 VEmptyView(36),
1923 Container( 1959 Container(
1924 height: ScreenUtil().setWidth(2), 1960 height: ScreenUtil().setWidth(2),
@@ -1961,6 +1997,11 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -1961,6 +1997,11 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
1961 1997
1962 ///订单操作UI 1998 ///订单操作UI
1963 Widget _operatingRecord() { 1999 Widget _operatingRecord() {
  2000 + String rolename =
  2001 + Provider.of<UserModel>(context, listen: false).user.role_name;
  2002 + bool showimage = (rolename == '管理员' || rolename == '店长') &&
  2003 + detailEntity.log_photo != null &&
  2004 + detailEntity.log_photo != '';
1964 return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ 2005 return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
1965 // VEmptyView(30), 2006 // VEmptyView(30),
1966 // MyDivider(double.infinity, w(0.5), color: MyColours.color_BFC4D4), 2007 // MyDivider(double.infinity, w(0.5), color: MyColours.color_BFC4D4),
@@ -1987,9 +2028,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -1987,9 +2028,8 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
1987 style: 2028 style:
1988 TextStyle(color: MyColours.color_999999, fontSize: font(14)), 2029 TextStyle(color: MyColours.color_999999, fontSize: font(14)),
1989 ), 2030 ),
1990 - if (detailEntity.log_photo != null && detailEntity.log_photo != '')  
1991 - HEmptyView(16),  
1992 - if (detailEntity.log_photo != null && detailEntity.log_photo != '') 2031 + if (showimage) HEmptyView(16),
  2032 + if (showimage)
1993 InkWell( 2033 InkWell(
1994 onTap: () { 2034 onTap: () {
1995 _showPhotoView(context, 0, [detailEntity.log_photo]); 2035 _showPhotoView(context, 0, [detailEntity.log_photo]);
@@ -2010,7 +2050,9 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -2010,7 +2050,9 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
2010 itemBuilder: (context, index) { 2050 itemBuilder: (context, index) {
2011 ReserveActionLogSunModol data = 2051 ReserveActionLogSunModol data =
2012 detailModel.reserveActionLogData[index]; 2052 detailModel.reserveActionLogData[index];
2013 - bool show = data.logPhoto != null && data.logPhoto != ''; 2053 + bool show = (rolename == '管理员' || rolename == '店长') &&
  2054 + data.logPhoto != null &&
  2055 + data.logPhoto != '';
2014 return Container( 2056 return Container(
2015 padding: 2057 padding:
2016 EdgeInsets.only(left: w(30), top: index == 0 ? w(16) : 0), 2058 EdgeInsets.only(left: w(30), top: index == 0 ? w(16) : 0),