|
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),
|