Commit ff818c08e77ee2f9ee407eaeee43fee1739235d8

Authored by wdn127929
1 parent d761d778

新建宴会 OK 缺添加桌位

@@ -1666,6 +1666,699 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1666,6 +1666,699 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1666 )); 1666 ));
1667 } 1667 }
1668 1668
  1669 + ///费用详情
  1670 + Widget costWidget() {
  1671 + return Container(
  1672 + margin: EdgeInsets.only(bottom: h(26)),
  1673 + decoration: BoxDecoration(
  1674 + borderRadius: BorderRadius.circular(r(6)),
  1675 + border: Border.all(width: w(1), color: MyColours.color_438E93)),
  1676 + child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
  1677 + Container(
  1678 + width: double.infinity,
  1679 + // height: h(31),
  1680 + padding: EdgeInsets.symmetric(horizontal: w(12), vertical: h(6)),
  1681 + decoration: BoxDecoration(
  1682 + color: MyColours.color_438E93,
  1683 + borderRadius: BorderRadius.only(
  1684 + topLeft: Radius.circular(r(5)),
  1685 + topRight: Radius.circular(r(5)))),
  1686 + child: Text(
  1687 + '费用详情',
  1688 + style:
  1689 + TextStyle(color: MyColours.color_F6F6F6, fontSize: font(14)),
  1690 + ),
  1691 + ),
  1692 + VEmptyView(34),
  1693 + ListView.builder(
  1694 + itemCount: 2,
  1695 + shrinkWrap: true,
  1696 + controller: _scrollController,
  1697 + itemBuilder: (BuildContext context, int index) {
  1698 + return Padding(
  1699 + padding: EdgeInsets.only(
  1700 + left: w(12), right: w(12), bottom: w(27)),
  1701 + child: Column(
  1702 + crossAxisAlignment: CrossAxisAlignment.start,
  1703 + children: [
  1704 + Text(
  1705 + '第一场费用:',
  1706 + style: TextStyle(
  1707 + color: MyColours.color_999999,
  1708 + fontSize: font(12)),
  1709 + ),
  1710 + VEmptyView(8),
  1711 + costItem('名称', '单价', '数量', '金额', isTitle: true),
  1712 + ListView.builder(
  1713 + itemCount: 4,
  1714 + shrinkWrap: true,
  1715 + controller: _scrollController,
  1716 + itemBuilder: (BuildContext context, int index) {
  1717 + return costItem(
  1718 + '1299套餐',
  1719 + '1299',
  1720 + '30',
  1721 + '38970',
  1722 + );
  1723 + }),
  1724 + //服务费
  1725 + Container(
  1726 + height: h(32),
  1727 + margin: EdgeInsets.only(bottom: h(8)),
  1728 + decoration: BoxDecoration(
  1729 + border: Border(
  1730 + bottom: BorderSide(
  1731 + width: w(1),
  1732 + color: MyColours.color_DBDBDB))),
  1733 + child: Row(
  1734 + children: [
  1735 + Container(
  1736 + width: w(80),
  1737 + child: Text(
  1738 + '服务费:',
  1739 + style: TextStyle(
  1740 + color: MyColours.color_515151,
  1741 + fontSize: font(12)),
  1742 + ),
  1743 + ),
  1744 + Image.asset(
  1745 + Utils.getImgPath('f_radio_sel'),
  1746 + width: w(20),
  1747 + ),
  1748 + HEmptyView(8),
  1749 + Text(
  1750 + '固定金额',
  1751 + style: TextStyle(
  1752 + color: MyColours.color_515151,
  1753 + fontSize: font(12)),
  1754 + ),
  1755 + HEmptyView(16),
  1756 + Image.asset(
  1757 + Utils.getImgPath('f_radio_un'),
  1758 + width: w(20),
  1759 + ),
  1760 + HEmptyView(8),
  1761 + Container(
  1762 + width: w(40),
  1763 + child: Text(
  1764 + '百分比',
  1765 + style: TextStyle(
  1766 + color: MyColours.color_515151,
  1767 + fontSize: font(12)),
  1768 + )),
  1769 + HEmptyView(12),
  1770 + Expanded(
  1771 + child: Container(
  1772 + height: h(17),
  1773 + decoration: BoxDecoration(
  1774 + border: Border(
  1775 + bottom: BorderSide(
  1776 + width: w(1),
  1777 + color:
  1778 + MyColours.color_DBDBDB))),
  1779 + child: TextField(
  1780 + maxLines: 1,
  1781 +
  1782 + //输入文本的样式
  1783 + style: TextStyle(
  1784 + fontSize: ScreenUtil().setSp(24),
  1785 + color: MyColours.color_515151),
  1786 + // controller: controller,
  1787 + // focusNode: node,
  1788 + // textAlignVertical: TextAlignVertical.top,
  1789 + decoration: InputDecoration(
  1790 + hintText: '请输入',
  1791 + hintStyle: TextStyle(
  1792 + color: true
  1793 + ? MyColours.color_999999
  1794 + : MyColours.color_515151,
  1795 + fontSize: ScreenUtil().setSp(24),
  1796 + ),
  1797 + // contentPadding:
  1798 + // EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
  1799 + // border: InputBorder.none,
  1800 + contentPadding: EdgeInsets.zero,
  1801 + border: OutlineInputBorder(
  1802 + borderSide: BorderSide.none),
  1803 + ),
  1804 + onChanged: (value) {
  1805 + print('ggg');
  1806 +
  1807 + // nameStr = value;
  1808 + },
  1809 + onEditingComplete: () {
  1810 + // print('fff');
  1811 + // node.unfocus();
  1812 + // _homeEnterModel.nameController.text =
  1813 + // nameStr + _nameSuffix();
  1814 + // _addNameSuffix(nameStr, sexStr);
  1815 + },
  1816 + keyboardType: TextInputType
  1817 + .numberWithOptions())),
  1818 + ),
  1819 + HEmptyView(4),
  1820 + Text(
  1821 + '%',
  1822 + style: TextStyle(
  1823 + color: MyColours.color_000000,
  1824 + fontSize: font(12)),
  1825 + ),
  1826 + ],
  1827 + )),
  1828 + //优惠金额
  1829 + Container(
  1830 + height: h(32),
  1831 + margin: EdgeInsets.only(bottom: h(8)),
  1832 + decoration: BoxDecoration(
  1833 + border: Border(
  1834 + bottom: BorderSide(
  1835 + width: w(1),
  1836 + color: MyColours.color_DBDBDB))),
  1837 + child: Row(
  1838 + children: [
  1839 + Container(
  1840 + width: w(80),
  1841 + child: Text(
  1842 + '优惠金额:',
  1843 + style: TextStyle(
  1844 + color: MyColours.color_E34D59,
  1845 + fontSize: font(12)),
  1846 + ),
  1847 + ),
  1848 + Image.asset(
  1849 + Utils.getImgPath('f_radio_sel'),
  1850 + width: w(20),
  1851 + ),
  1852 + HEmptyView(8),
  1853 + Text(
  1854 + '固定金额',
  1855 + style: TextStyle(
  1856 + color: MyColours.color_515151,
  1857 + fontSize: font(12)),
  1858 + ),
  1859 + HEmptyView(16),
  1860 + Image.asset(
  1861 + Utils.getImgPath('f_radio_un'),
  1862 + width: w(20),
  1863 + ),
  1864 + HEmptyView(8),
  1865 + Container(
  1866 + width: w(40),
  1867 + child: Text(
  1868 + '折扣',
  1869 + style: TextStyle(
  1870 + color: MyColours.color_515151,
  1871 + fontSize: font(12)),
  1872 + )),
  1873 + HEmptyView(12),
  1874 + Expanded(
  1875 + child: Container(
  1876 + height: h(17),
  1877 + decoration: BoxDecoration(
  1878 + border: Border(
  1879 + bottom: BorderSide(
  1880 + width: w(1),
  1881 + color:
  1882 + MyColours.color_DBDBDB))),
  1883 + child: TextField(
  1884 + maxLines: 1,
  1885 +
  1886 + //输入文本的样式
  1887 + style: TextStyle(
  1888 + fontSize: ScreenUtil().setSp(24),
  1889 + color: MyColours.color_515151),
  1890 + // controller: controller,
  1891 + // focusNode: node,
  1892 + // textAlignVertical: TextAlignVertical.top,
  1893 + decoration: InputDecoration(
  1894 + hintText: '请输入',
  1895 + hintStyle: TextStyle(
  1896 + color: true
  1897 + ? MyColours.color_999999
  1898 + : MyColours.color_E34D59,
  1899 + fontSize: ScreenUtil().setSp(24),
  1900 + ),
  1901 + // contentPadding:
  1902 + // EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
  1903 + // border: InputBorder.none,
  1904 + contentPadding: EdgeInsets.zero,
  1905 + border: OutlineInputBorder(
  1906 + borderSide: BorderSide.none),
  1907 + ),
  1908 + onChanged: (value) {
  1909 + print('ggg');
  1910 +
  1911 + // nameStr = value;
  1912 + },
  1913 + onEditingComplete: () {
  1914 + // print('fff');
  1915 + // node.unfocus();
  1916 + // _homeEnterModel.nameController.text =
  1917 + // nameStr + _nameSuffix();
  1918 + // _addNameSuffix(nameStr, sexStr);
  1919 + },
  1920 + keyboardType: TextInputType
  1921 + .numberWithOptions())),
  1922 + ),
  1923 + HEmptyView(4),
  1924 + Text(
  1925 + '元',
  1926 + style: TextStyle(
  1927 + color: MyColours.color_000000,
  1928 + fontSize: font(12)),
  1929 + ),
  1930 + ],
  1931 + )),
  1932 + //合计
  1933 + Container(
  1934 + height: h(24),
  1935 + decoration: BoxDecoration(
  1936 + border: Border(
  1937 + bottom: BorderSide(
  1938 + width: w(1),
  1939 + color: MyColours.color_DBDBDB))),
  1940 + child: Row(children: [
  1941 + Text(
  1942 + '合计',
  1943 + style: TextStyle(
  1944 + color: MyColours.color_515151,
  1945 + fontWeight: FontWeight.bold,
  1946 + fontSize: font(14)),
  1947 + ),
  1948 + Spacer(),
  1949 + Text(
  1950 + '7000000 元',
  1951 + style: TextStyle(
  1952 + color: MyColours.color_515151,
  1953 + fontWeight: FontWeight.bold,
  1954 + fontSize: font(14)),
  1955 + ),
  1956 + HEmptyView(48)
  1957 + ]))
  1958 + ],
  1959 + ));
  1960 + }),
  1961 + ]));
  1962 + }
  1963 +
  1964 + ///费用item
  1965 + Widget costItem(
  1966 + String name,
  1967 + String unitprice,
  1968 + String amount,
  1969 + String money, {
  1970 + bool isTitle = false,
  1971 + }) {
  1972 + Color color = isTitle ? MyColours.color_438E93 : MyColours.color_515151;
  1973 + return Container(
  1974 + height: h(25),
  1975 + margin: EdgeInsets.only(bottom: isTitle ? 0 : h(8)),
  1976 + decoration: !isTitle
  1977 + ? BoxDecoration(
  1978 + border: Border(
  1979 + bottom:
  1980 + BorderSide(width: w(1), color: MyColours.color_DBDBDB)))
  1981 + : BoxDecoration(),
  1982 + child: Row(
  1983 + children: [
  1984 + Expanded(
  1985 + child: Text(
  1986 + name,
  1987 + style: TextStyle(color: color, fontSize: font(12)),
  1988 + ),
  1989 + ),
  1990 + Container(
  1991 + width: w(62),
  1992 + child: Text(
  1993 + unitprice,
  1994 + style: TextStyle(color: color, fontSize: font(12)),
  1995 + ),
  1996 + ),
  1997 + Container(
  1998 + width: w(62),
  1999 + child: Text(
  2000 + amount,
  2001 + style: TextStyle(color: color, fontSize: font(12)),
  2002 + ),
  2003 + ),
  2004 + Container(
  2005 + width: w(62),
  2006 + child: Text(
  2007 + money,
  2008 + style: TextStyle(color: color, fontSize: font(12)),
  2009 + ),
  2010 + )
  2011 + ],
  2012 + ));
  2013 + }
  2014 +
  2015 + /// 合同
  2016 + Widget contractWidget() {
  2017 + return Container(
  2018 + margin: EdgeInsets.only(bottom: h(26)),
  2019 + decoration: BoxDecoration(
  2020 + borderRadius: BorderRadius.circular(r(6)),
  2021 + border: Border.all(width: w(1), color: MyColours.color_438E93)),
  2022 + child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
  2023 + Container(
  2024 + width: double.infinity,
  2025 + // height: h(31),
  2026 + padding: EdgeInsets.symmetric(horizontal: w(12), vertical: h(6)),
  2027 + decoration: BoxDecoration(
  2028 + color: MyColours.color_438E93,
  2029 + borderRadius: BorderRadius.only(
  2030 + topLeft: Radius.circular(r(5)),
  2031 + topRight: Radius.circular(r(5)))),
  2032 + child: Text(
  2033 + '合同',
  2034 + style:
  2035 + TextStyle(color: MyColours.color_F6F6F6, fontSize: font(14)),
  2036 + ),
  2037 + ),
  2038 + VEmptyView(22),
  2039 + Padding(
  2040 + padding: EdgeInsets.only(
  2041 + left: w(12), right: w(12), top: w(11), bottom: w(29)),
  2042 + child: Column(
  2043 + children: [
  2044 + Row(
  2045 + children: [
  2046 + Text(
  2047 + '总原价:',
  2048 + style: TextStyle(
  2049 + fontWeight: FontWeight.bold,
  2050 + color: MyColours.color_515151,
  2051 + fontSize: ScreenUtil().setSp(28)),
  2052 + ),
  2053 + HEmptyView(12),
  2054 + Text(
  2055 + '159000 元',
  2056 + style: TextStyle(
  2057 + fontWeight: FontWeight.bold,
  2058 + color: MyColours.color_515151,
  2059 + fontSize: ScreenUtil().setSp(28)),
  2060 + ),
  2061 + ],
  2062 + ),
  2063 + VEmptyView(32),
  2064 + Row(
  2065 + children: [
  2066 + RichText(
  2067 + textScaleFactor: 1,
  2068 + overflow: TextOverflow.ellipsis,
  2069 +
  2070 + // textDirection: TextDirection.ltr,
  2071 +
  2072 + text: TextSpan(
  2073 + children: [
  2074 + TextSpan(
  2075 + text: '最终议价',
  2076 + style: TextStyle(
  2077 + fontWeight: FontWeight.bold,
  2078 + color: MyColours.color_515151,
  2079 + fontSize: ScreenUtil().setSp(28)),
  2080 + //点击事件
  2081 + recognizer: TapGestureRecognizer()
  2082 + ..onTap = () {}),
  2083 + TextSpan(
  2084 + text: '*',
  2085 + style: TextStyle(
  2086 + fontWeight: FontWeight.bold,
  2087 + color: MyColours.color_E34D59,
  2088 + fontSize: ScreenUtil().setSp(28)),
  2089 + recognizer: TapGestureRecognizer()
  2090 + ..onTap = () {}),
  2091 + TextSpan(
  2092 + text: ':',
  2093 + style: TextStyle(
  2094 + fontWeight: FontWeight.bold,
  2095 + color: MyColours.color_515151,
  2096 + fontSize: ScreenUtil().setSp(28)),
  2097 + //点击事件
  2098 + recognizer: TapGestureRecognizer()
  2099 + ..onTap = () {}),
  2100 + ],
  2101 + )),
  2102 + HEmptyView(12),
  2103 + _textfield('1299', null, null, width: w(110)),
  2104 + HEmptyView(24),
  2105 + Text(
  2106 + '元',
  2107 + style: TextStyle(
  2108 + color: MyColours.color_438E93,
  2109 + fontWeight: FontWeight.bold,
  2110 + fontSize: font(14),
  2111 + ),
  2112 + ),
  2113 + ],
  2114 + ),
  2115 + VEmptyView(48),
  2116 + _titleAndtextfield('客户签约人:', null, null),
  2117 + VEmptyView(48),
  2118 + _titleAndtextfield('店方签约人:', null, null),
  2119 + VEmptyView(48),
  2120 + _titleAndtextfield('合同编号:', null, null),
  2121 + VEmptyView(48),
  2122 + Consumer<UploadImageProvider>(builder: (context, model, _) {
  2123 + return ImgPickerFWidget(
  2124 + model: model,
  2125 + scrollController: _scrollController,
  2126 + uploadType: UploadType.FeastRemarkContractType,
  2127 + bgColor: MyColours.color_DBDBDB,
  2128 + size: 64,
  2129 + crossAxisCount: 4,
  2130 + maxImageNumber: 8,
  2131 + mainAxisSpacing: 72,
  2132 + crossAxisSpacing: 56,
  2133 + );
  2134 + }),
  2135 + ],
  2136 + ),
  2137 + )
  2138 + ]));
  2139 + }
  2140 +
  2141 + ///合同 title+输入框
  2142 + Widget _titleAndtextfield(String title,
  2143 + TextEditingController editingController, FocusNode focusNode,
  2144 + {TextInputType inputType = TextInputType.text}) {
  2145 + return Row(
  2146 + children: [
  2147 + Container(
  2148 + width: w(86),
  2149 + child: Text(
  2150 + title,
  2151 + style: TextStyle(
  2152 + color: MyColours.color_515151,
  2153 + fontSize: font(14),
  2154 + ),
  2155 + ),
  2156 + ),
  2157 + HEmptyView(48),
  2158 + Expanded(
  2159 + child: Container(
  2160 + height: h(20),
  2161 + alignment: Alignment.center,
  2162 + padding: EdgeInsets.symmetric(horizontal: w(6)),
  2163 + decoration: BoxDecoration(
  2164 + border: Border(
  2165 + bottom:
  2166 + BorderSide(width: h(1), color: MyColours.color_DBDBDB))),
  2167 + child: TextField(
  2168 + controller: editingController,
  2169 + // textAlign: TextAlign.right,
  2170 + // textAlignVertical: TextAlignVertical.bottom,
  2171 + maxLines: 1,
  2172 + inputFormatters: [],
  2173 +
  2174 + // //光标颜色
  2175 + // cursorColor:
  2176 + // widget.isSelect ? Colors.white : MyColours.color_199095,
  2177 + //输入文本的样式
  2178 + style: TextStyle(
  2179 + fontSize: ScreenUtil().setSp(28),
  2180 + color: MyColours.color_515151),
  2181 + focusNode: focusNode,
  2182 + // textAlign: TextAlign.center,
  2183 + decoration: InputDecoration(
  2184 + border: OutlineInputBorder(borderSide: BorderSide.none),
  2185 + // hintText: hintText,
  2186 + // hintStyle: TextStyle(
  2187 + // color: hintText == ''
  2188 + // ? MyColours.color_999999
  2189 + // : MyColours.color_438E93,
  2190 + // fontSize: ScreenUtil().setSp(28),
  2191 + // fontWeight: FontWeight.bold,
  2192 + // ),
  2193 + contentPadding: EdgeInsets.zero,
  2194 + ),
  2195 + onChanged: (value) {},
  2196 + onEditingComplete: () {
  2197 + FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
  2198 + },
  2199 + keyboardType: inputType,
  2200 + ),
  2201 + ))
  2202 + ],
  2203 + );
  2204 + }
  2205 +
  2206 + ///输入框
  2207 + Widget _textfield(String hintText, TextEditingController editingController,
  2208 + FocusNode focusNode,
  2209 + {TextInputType inputType = TextInputType.text, double width}) {
  2210 + return Container(
  2211 + width: width,
  2212 + height: h(28),
  2213 + alignment: Alignment.center,
  2214 + padding: EdgeInsets.symmetric(horizontal: w(6)),
  2215 + decoration: BoxDecoration(
  2216 + border: Border.all(width: h(1), color: MyColours.color_438E93)),
  2217 + child: TextField(
  2218 + controller: editingController,
  2219 + // textAlign: TextAlign.right,
  2220 + // textAlignVertical: TextAlignVertical.bottom,
  2221 + maxLines: 1,
  2222 + inputFormatters: [],
  2223 +
  2224 + // //光标颜色
  2225 + // cursorColor:
  2226 + // widget.isSelect ? Colors.white : MyColours.color_199095,
  2227 + //输入文本的样式
  2228 + style: TextStyle(
  2229 + fontSize: ScreenUtil().setSp(28),
  2230 + fontWeight: FontWeight.bold,
  2231 + ),
  2232 + focusNode: focusNode,
  2233 + textAlign: TextAlign.center,
  2234 + decoration: InputDecoration(
  2235 + border: OutlineInputBorder(borderSide: BorderSide.none),
  2236 + hintText: hintText,
  2237 + hintStyle: TextStyle(
  2238 + color: hintText == ''
  2239 + ? MyColours.color_999999
  2240 + : MyColours.color_438E93,
  2241 + fontSize: ScreenUtil().setSp(28),
  2242 + fontWeight: FontWeight.bold,
  2243 + ),
  2244 + contentPadding: EdgeInsets.zero,
  2245 + ),
  2246 + onChanged: (value) {},
  2247 + onEditingComplete: () {
  2248 + FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
  2249 + },
  2250 + keyboardType: inputType,
  2251 + ),
  2252 + );
  2253 + }
  2254 +
  2255 + /// 发票
  2256 + Widget invoiceWidget() {
  2257 + return Container(
  2258 + margin: EdgeInsets.only(bottom: h(26)),
  2259 + decoration: BoxDecoration(
  2260 + borderRadius: BorderRadius.circular(r(6)),
  2261 + border: Border.all(width: w(1), color: MyColours.color_438E93)),
  2262 + child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
  2263 + Container(
  2264 + width: double.infinity,
  2265 + // height: h(31),
  2266 + padding: EdgeInsets.symmetric(horizontal: w(12), vertical: h(6)),
  2267 + decoration: BoxDecoration(
  2268 + color: MyColours.color_438E93,
  2269 + borderRadius: BorderRadius.only(
  2270 + topLeft: Radius.circular(r(5)),
  2271 + topRight: Radius.circular(r(5)))),
  2272 + child: Text(
  2273 + '发票',
  2274 + style:
  2275 + TextStyle(color: MyColours.color_F6F6F6, fontSize: font(14)),
  2276 + ),
  2277 + ),
  2278 + VEmptyView(22),
  2279 + Padding(
  2280 + padding: EdgeInsets.only(
  2281 + left: w(12), right: w(12), top: w(11), bottom: w(29)),
  2282 + child: Column(
  2283 + children: [
  2284 + Row(
  2285 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
  2286 + children: [
  2287 + Text(
  2288 + '添加发票:',
  2289 + style: TextStyle(
  2290 + color: MyColours.color_515151,
  2291 + fontSize: ScreenUtil().setSp(28)),
  2292 + ),
  2293 + InkWell(
  2294 + onTap: () {
  2295 + NavigatorUtil.goFeastInvoicePage(context);
  2296 + },
  2297 + child: Text(
  2298 + '编辑',
  2299 + style: TextStyle(
  2300 + decoration: TextDecoration.underline,
  2301 + color: MyColours.color_438E93,
  2302 + fontSize: ScreenUtil().setSp(28)),
  2303 + )),
  2304 + ],
  2305 + ),
  2306 + VEmptyView(42),
  2307 + Container(
  2308 + padding: EdgeInsets.symmetric(vertical: w(8)),
  2309 + decoration: BoxDecoration(
  2310 + border: Border(
  2311 + bottom: BorderSide(
  2312 + width: w(1), color: MyColours.color_DBDBDB))),
  2313 + child: Row(
  2314 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
  2315 + children: [
  2316 + Column(
  2317 + crossAxisAlignment: CrossAxisAlignment.start,
  2318 + children: [
  2319 + Text(
  2320 + '纳极(北京)科技有限公司',
  2321 + style: TextStyle(
  2322 + fontWeight: FontWeight.bold,
  2323 + color: MyColours.color_515151,
  2324 + fontSize: ScreenUtil().setSp(32)),
  2325 + ),
  2326 + VEmptyView(16),
  2327 + Text(
  2328 + '增值税普通发票',
  2329 + style: TextStyle(
  2330 + color: MyColours.color_999999,
  2331 + fontSize: ScreenUtil().setSp(24)),
  2332 + ),
  2333 + ],
  2334 + ),
  2335 + InkWell(
  2336 + onTap: () {},
  2337 + child: Image.asset(Utils.getImgPath('f_delete_red'),
  2338 + width: w(20))),
  2339 + ],
  2340 + ),
  2341 + ),
  2342 + VEmptyView(48),
  2343 + Consumer<UploadImageProvider>(builder: (context, model, _) {
  2344 + return ImgPickerFWidget(
  2345 + model: model,
  2346 + scrollController: _scrollController,
  2347 + uploadType: UploadType.FeastRemarkInvoiceType,
  2348 + bgColor: MyColours.color_DBDBDB,
  2349 + size: 64,
  2350 + crossAxisCount: 4,
  2351 + maxImageNumber: 8,
  2352 + mainAxisSpacing: 72,
  2353 + crossAxisSpacing: 56,
  2354 + );
  2355 + }),
  2356 + ],
  2357 + ),
  2358 + )
  2359 + ]));
  2360 + }
  2361 +
1669 ///三组 左---中----右 2362 ///三组 左---中----右
1670 Widget sessionsItem(String title) { 2363 Widget sessionsItem(String title) {
1671 return Padding( 2364 return Padding(
@@ -1803,8 +2496,9 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1803,8 +2496,9 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1803 Padding( 2496 Padding(
1804 padding: EdgeInsets.symmetric(horizontal: w(12)), 2497 padding: EdgeInsets.symmetric(horizontal: w(12)),
1805 child: Column(children: [ 2498 child: Column(children: [
1806 - baseInfoWidget(), 2499 + baseInfoWidget(), //基本信息
1807 VEmptyView(52), 2500 VEmptyView(52),
  2501 + //场次
1808 ListView.builder( 2502 ListView.builder(
1809 itemCount: 3, 2503 itemCount: 3,
1810 shrinkWrap: true, 2504 shrinkWrap: true,
@@ -1812,7 +2506,12 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1812,7 +2506,12 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1812 itemBuilder: (BuildContext context, int index) { 2506 itemBuilder: (BuildContext context, int index) {
1813 return sessionsWidget('第${index + 1}场'); 2507 return sessionsWidget('第${index + 1}场');
1814 }), 2508 }),
1815 - VEmptyView(52), 2509 + //费用详情
  2510 + costWidget(),
  2511 + //合同
  2512 + contractWidget(),
  2513 +
  2514 + invoiceWidget()
1816 ])) 2515 ]))
1817 ]))), 2516 ]))),
1818 Row( 2517 Row(
@@ -11,7 +11,9 @@ import '../../utils/screen_util.dart'; @@ -11,7 +11,9 @@ import '../../utils/screen_util.dart';
11 import '../../utils/utils.dart'; 11 import '../../utils/utils.dart';
12 import '../../widgets/h_empty_view.dart'; 12 import '../../widgets/h_empty_view.dart';
13 import '../../widgets/system_app_bar.dart'; 13 import '../../widgets/system_app_bar.dart';
14 - 14 +/**
  15 + * 定金
  16 + */
15 class FeastDepositPage extends StatefulWidget { 17 class FeastDepositPage extends StatefulWidget {
16 FeastDepositPage({Key key}) : super(key: key); 18 FeastDepositPage({Key key}) : super(key: key);
17 19
  1 +import 'package:common_utils/common_utils.dart';
  2 +import 'package:flutter/gestures.dart';
  3 +import 'package:flutter/material.dart';
  4 +import 'package:flutter_picker/Picker.dart';
  5 +import 'package:flutter_screenutil/flutter_screenutil.dart';
  6 +import 'package:one_key/widgets/v_empty_view.dart';
  7 +
  8 +import '../../res/colors.dart';
  9 +import '../../utils/dialog_util.dart';
  10 +import '../../utils/screen_util.dart';
  11 +import '../../utils/utils.dart';
  12 +import '../../widgets/h_empty_view.dart';
  13 +import '../../widgets/system_app_bar.dart';
  14 +
  15 +/**
  16 + * 编辑发票
  17 + */
  18 +class FeastInvoicePage extends StatefulWidget {
  19 + FeastInvoicePage({Key key}) : super(key: key);
  20 +
  21 + @override
  22 + _FeastInvoicePageState createState() => _FeastInvoicePageState();
  23 +}
  24 +
  25 +class _FeastInvoicePageState extends State<FeastInvoicePage> {
  26 + @override
  27 + void initState() {
  28 + // TODO: implement initState
  29 + super.initState();
  30 +
  31 + Utils.changeStatusColor(color: MyColours.color_438E93);
  32 +
  33 + WidgetsBinding.instance.addPostFrameCallback((_) {});
  34 + }
  35 +
  36 + ///请输入
  37 + ///输入框
  38 + Widget _textfield(
  39 + String title,
  40 + // TextEditingController editingController,
  41 + // FocusNode focusNode,
  42 + String subTitle,
  43 + {TextInputType inputType = TextInputType.text,
  44 + bool need = false}) {
  45 + return Container(
  46 + child: Row(
  47 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
  48 + children: [
  49 + Container(
  50 + width: w(92),
  51 + child: RichText(
  52 + textScaleFactor: 1,
  53 + overflow: TextOverflow.ellipsis,
  54 + // textDirection: TextDirection.ltr,
  55 +
  56 + text: TextSpan(
  57 + children: [
  58 + TextSpan(
  59 + text: title,
  60 + style: TextStyle(
  61 + color: MyColours.color_515151,
  62 + fontSize: ScreenUtil().setSp(28)),
  63 + recognizer: TapGestureRecognizer()..onTap = () {}),
  64 + TextSpan(
  65 + text: need ? '*' : '',
  66 + style: TextStyle(
  67 + color: MyColours.color_E34D59,
  68 + fontSize: ScreenUtil().setSp(28)),
  69 + //点击事件
  70 + recognizer: TapGestureRecognizer()..onTap = () {}),
  71 + ],
  72 + ))),
  73 + HEmptyView(48),
  74 + Expanded(
  75 + child: Container(
  76 + decoration: BoxDecoration(
  77 + border: Border(
  78 + bottom: BorderSide(
  79 + width: h(1), color: MyColours.color_DBDBDB))),
  80 + child: Row(
  81 + children: [
  82 + Expanded(
  83 + child: Container(
  84 + // height: ScreenUtil().setHeight(120),
  85 + height: ScreenUtil().setWidth(64),
  86 + child: TextField(
  87 + // controller: editingController,
  88 + // textAlign: TextAlign.right,
  89 + // textAlignVertical: TextAlignVertical.bottom,
  90 + maxLines: 1,
  91 + inputFormatters: [],
  92 +
  93 + // //光标颜色
  94 + // cursorColor:
  95 + // widget.isSelect ? Colors.white : MyColours.color_199095,
  96 + //输入文本的样式
  97 + style: TextStyle(
  98 + fontSize: ScreenUtil().setSp(32),
  99 + ),
  100 + // focusNode: focusNode,
  101 + decoration: InputDecoration(
  102 + border:
  103 + OutlineInputBorder(borderSide: BorderSide.none),
  104 + hintText: '请输入',
  105 + hintStyle: TextStyle(
  106 + color: MyColours.color_999999,
  107 + fontSize: ScreenUtil().setSp(28),
  108 + ),
  109 + contentPadding: EdgeInsets.zero,
  110 + ),
  111 + onChanged: (value) {},
  112 + onEditingComplete: () {
  113 + FocusScope.of(context)
  114 + .requestFocus(FocusNode()); //点击空白处隐藏键盘
  115 + },
  116 + keyboardType: inputType,
  117 + )),
  118 + ),
  119 + Container(
  120 + child: Text(
  121 + subTitle,
  122 + style: TextStyle(
  123 + color: MyColours.color_515151,
  124 + fontSize: ScreenUtil().setSp(28)),
  125 + ),
  126 + ),
  127 + ],
  128 + ),
  129 + ))
  130 + ],
  131 + ),
  132 + );
  133 + }
  134 +
  135 + ///请选择
  136 + Widget _selectWidget(String title, String labelShow,
  137 + {GestureTapCallback onTap, bool need = true}) {
  138 + return InkWell(
  139 + onTap: onTap,
  140 + // () {
  141 + // FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
  142 + // DialogUtil.showSelectCusmanDialog(
  143 + // context,
  144 + // customerProvider.labelList.map((item) {
  145 + // return item.label;
  146 + // }).toList(), (value) {
  147 + // if (value != null) {
  148 + // setState(() {
  149 + // customerProvider.labelSelIndex =
  150 + // value.first;
  151 + // labelShow = customerProvider
  152 + // .labelList[
  153 + // customerProvider.labelSelIndex]
  154 + // .label;
  155 + // });
  156 + // }
  157 + // },
  158 + // selecteds:
  159 + // customerProvider.labelSelIndex == null
  160 + // ? []
  161 + // : [
  162 + // customerProvider.labelSelIndex
  163 + // ])
  164 + // .then((value) {});
  165 + // },
  166 + child: Row(
  167 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
  168 + crossAxisAlignment: CrossAxisAlignment.center,
  169 + children: [
  170 + Container(
  171 + // color: Colors.red,
  172 + width: ScreenUtil().setWidth(160),
  173 + height: ScreenUtil().setWidth(35),
  174 + child: Text(
  175 + title,
  176 + style: TextStyle(
  177 + fontSize: ScreenUtil().setSp(28),
  178 + color: MyColours.color_515151),
  179 + ),
  180 + ),
  181 + HEmptyView(60),
  182 + Expanded(
  183 + child: Container(
  184 + height: ScreenUtil().setWidth(64),
  185 + decoration: BoxDecoration(
  186 + border: Border(
  187 + bottom: BorderSide(
  188 + width: ScreenUtil().setWidth(2),
  189 + color: Color.fromRGBO(220, 220, 220, 1)))),
  190 + child: Row(
  191 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
  192 + children: [
  193 + Expanded(
  194 + child: Text(
  195 + labelShow,
  196 + overflow: TextOverflow.ellipsis,
  197 + style: TextStyle(
  198 + color: labelShow == '请选择'
  199 + ? MyColours.color_999999
  200 + : MyColours.color_515151,
  201 + fontSize: ScreenUtil().setSp(28),
  202 + ),
  203 + )),
  204 + HEmptyView(10),
  205 + Image.asset(
  206 + Utils.getImgPath('f_arrow_down'),
  207 + width: ScreenUtil().setWidth(64),
  208 + // height: ScreenUtil().setWidth(10),
  209 + ),
  210 + HEmptyView(16),
  211 + ],
  212 + ))),
  213 + ],
  214 + ),
  215 + );
  216 + }
  217 +
  218 + Widget _callButton(
  219 + {GestureTapCallback onPress,
  220 + content,
  221 + hasLeftBorder = true,
  222 + isSelect = false}) {
  223 + return InkWell(
  224 + onTap: onPress,
  225 + child: Container(
  226 + height: h(48),
  227 + decoration: BoxDecoration(
  228 + color: isSelect ? MyColours.color_438E93 : MyColours.color_ffffff,
  229 + border: Border(
  230 + bottom: BorderSide(
  231 + color: MyColours.color_438E93,
  232 + width: ScreenUtil().setWidth(2)),
  233 + top: BorderSide(
  234 + color: MyColours.color_438E93,
  235 + width: ScreenUtil().setWidth(2)),
  236 + left: hasLeftBorder
  237 + ? BorderSide(
  238 + color: MyColours.color_438E93,
  239 + width: ScreenUtil().setWidth(2))
  240 + : BorderSide.none,
  241 + right: BorderSide(
  242 + color: MyColours.color_438E93,
  243 + width: ScreenUtil().setWidth(2)))),
  244 + child: Align(
  245 + alignment: Alignment.center,
  246 + child: Text(
  247 + content,
  248 + style: TextStyle(
  249 + color:
  250 + isSelect ? MyColours.color_F6F6F6 : MyColours.color_438E93,
  251 + fontSize: ScreenUtil().setSp(36)),
  252 + ),
  253 + ),
  254 + ),
  255 + );
  256 + }
  257 +
  258 + ///单选按钮
  259 + Widget radioBtn(String title, bool select) {
  260 + return InkWell(
  261 + onTap: () {},
  262 + child: Row(
  263 + children: [
  264 + Image.asset(
  265 + Utils.getImgPath(select ? 'select' : 'unselect'),
  266 + width: w(24),
  267 + ),
  268 + HEmptyView(16),
  269 + Text(
  270 + title,
  271 + style: TextStyle(
  272 + color: MyColours.color_515151,
  273 + fontWeight: FontWeight.bold,
  274 + fontSize: ScreenUtil().setSp(32)),
  275 + ),
  276 + ],
  277 + ));
  278 + }
  279 +
  280 + @override
  281 + Widget build(BuildContext context) {
  282 + return Scaffold(
  283 + backgroundColor: MyColours.color_ffffff,
  284 + appBar: SystemAppBar(
  285 + '添加发票',
  286 + needWhite: true,
  287 + bgColor: MyColours.color_438E93,
  288 + titleColor: MyColours.color_F6F6F6,
  289 + onTap: () {
  290 + Navigator.pop(context);
  291 + },
  292 + ),
  293 + body: Column(
  294 + children: [
  295 + Expanded(
  296 + child: SingleChildScrollView(
  297 + child: Padding(
  298 + padding: EdgeInsets.only(left: w(30), right: w(13)),
  299 + child: Column(
  300 + children: [
  301 + VEmptyView(68),
  302 + Row(
  303 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
  304 + children: [
  305 + radioBtn('增值税普通发票', true),
  306 + radioBtn('增值税专用发票', false),
  307 + ],
  308 + ),
  309 + VEmptyView(80),
  310 + _textfield('开票金额', '元', need: true),
  311 + VEmptyView(40),
  312 + _textfield('单位全称', '', need: true),
  313 + VEmptyView(40),
  314 + _textfield('纳税人识别号', '', need: true),
  315 + VEmptyView(40),
  316 + _textfield('注册地址', ''),
  317 + VEmptyView(40),
  318 + _textfield('注册电话', ''),
  319 + VEmptyView(40),
  320 + _textfield('开户银行', ''),
  321 + VEmptyView(40),
  322 + _textfield('银行账号', ''),
  323 + VEmptyView(40),
  324 + _textfield('电子邮箱', ''),
  325 + VEmptyView(40),
  326 + _textfield('收件人', ''),
  327 + VEmptyView(40),
  328 + _textfield('收件人电话', ''),
  329 + VEmptyView(40),
  330 + _textfield('收件地址', ''),
  331 + VEmptyView(40),
  332 + _textfield('邮编', ''),
  333 + VEmptyView(40),
  334 + ],
  335 + )),
  336 + )),
  337 + Row(
  338 + children: [
  339 + Expanded(
  340 + child: _callButton(
  341 + onPress: () {
  342 + Navigator.pop(context);
  343 + },
  344 + content: '返回',
  345 + hasLeftBorder: true,
  346 + isSelect: false)),
  347 + Expanded(
  348 + child: _callButton(
  349 + onPress: () {},
  350 + content: '保存并返回',
  351 + hasLeftBorder: true,
  352 + isSelect: true))
  353 + ],
  354 + )
  355 + ],
  356 + ));
  357 + }
  358 +}
@@ -124,6 +124,10 @@ class _ImgPickerFWidgetState extends DisposableState<ImgPickerFWidget> { @@ -124,6 +124,10 @@ class _ImgPickerFWidgetState extends DisposableState<ImgPickerFWidget> {
124 widget.model.feastRemarkXtImageList.add(imgModel); 124 widget.model.feastRemarkXtImageList.add(imgModel);
125 } else if (widget.uploadType == UploadType.FeastRemarkDjType) { 125 } else if (widget.uploadType == UploadType.FeastRemarkDjType) {
126 widget.model.feastRemarkDjImageList.add(imgModel); 126 widget.model.feastRemarkDjImageList.add(imgModel);
  127 + } else if (widget.uploadType == UploadType.FeastRemarkContractType) {
  128 + widget.model.feastRemarkContractImageList.add(imgModel);
  129 + } else if (widget.uploadType == UploadType.FeastRemarkInvoiceType) {
  130 + widget.model.feastRemarkInvoiceImageList.add(imgModel);
127 } 131 }
128 } else { 132 } else {
129 print('No image selected.'); 133 print('No image selected.');
@@ -146,6 +150,10 @@ class _ImgPickerFWidgetState extends DisposableState<ImgPickerFWidget> { @@ -146,6 +150,10 @@ class _ImgPickerFWidgetState extends DisposableState<ImgPickerFWidget> {
146 temp = widget.model.feastRemarkXtImageList; 150 temp = widget.model.feastRemarkXtImageList;
147 } else if (widget.uploadType == UploadType.FeastRemarkDjType) { 151 } else if (widget.uploadType == UploadType.FeastRemarkDjType) {
148 temp = widget.model.feastRemarkDjImageList; 152 temp = widget.model.feastRemarkDjImageList;
  153 + } else if (widget.uploadType == UploadType.FeastRemarkContractType) {
  154 + temp = widget.model.feastRemarkContractImageList;
  155 + } else if (widget.uploadType == UploadType.FeastRemarkInvoiceType) {
  156 + temp = widget.model.feastRemarkInvoiceImageList;
149 } 157 }
150 UploadImageUtil().startUpload(context, File(pickedFile.path), 158 UploadImageUtil().startUpload(context, File(pickedFile.path),
151 temp.length - 1, true, widget.model, widget.uploadType, 159 temp.length - 1, true, widget.model, widget.uploadType,
@@ -170,6 +178,10 @@ class _ImgPickerFWidgetState extends DisposableState<ImgPickerFWidget> { @@ -170,6 +178,10 @@ class _ImgPickerFWidgetState extends DisposableState<ImgPickerFWidget> {
170 temp = widget.model.feastRemarkXtImageList; 178 temp = widget.model.feastRemarkXtImageList;
171 } else if (widget.uploadType == UploadType.FeastRemarkDjType) { 179 } else if (widget.uploadType == UploadType.FeastRemarkDjType) {
172 temp = widget.model.feastRemarkDjImageList; 180 temp = widget.model.feastRemarkDjImageList;
  181 + } else if (widget.uploadType == UploadType.FeastRemarkContractType) {
  182 + temp = widget.model.feastRemarkContractImageList;
  183 + } else if (widget.uploadType == UploadType.FeastRemarkInvoiceType) {
  184 + temp = widget.model.feastRemarkInvoiceImageList;
173 } 185 }
174 List<AssetEntity> imgList = await AssetPicker.pickAssets(context, 186 List<AssetEntity> imgList = await AssetPicker.pickAssets(context,
175 maxAssets: widget.maxImageNumber - temp.length, 187 maxAssets: widget.maxImageNumber - temp.length,
@@ -477,6 +489,10 @@ class _ImgPickerFWidgetState extends DisposableState<ImgPickerFWidget> { @@ -477,6 +489,10 @@ class _ImgPickerFWidgetState extends DisposableState<ImgPickerFWidget> {
477 temp = widget.model.feastRemarkXtImageList; 489 temp = widget.model.feastRemarkXtImageList;
478 } else if (widget.uploadType == UploadType.FeastRemarkDjType) { 490 } else if (widget.uploadType == UploadType.FeastRemarkDjType) {
479 temp = widget.model.feastRemarkDjImageList; 491 temp = widget.model.feastRemarkDjImageList;
  492 + } else if (widget.uploadType == UploadType.FeastRemarkContractType) {
  493 + temp = widget.model.feastRemarkContractImageList;
  494 + } else if (widget.uploadType == UploadType.FeastRemarkInvoiceType) {
  495 + temp = widget.model.feastRemarkInvoiceImageList;
480 } 496 }
481 return _getGridImg( 497 return _getGridImg(
482 temp.length < widget.maxImageNumber ? temp.length + 1 : temp.length, 498 temp.length < widget.maxImageNumber ? temp.length + 1 : temp.length,
@@ -531,9 +547,9 @@ class _ImgPickerFWidgetState extends DisposableState<ImgPickerFWidget> { @@ -531,9 +547,9 @@ class _ImgPickerFWidgetState extends DisposableState<ImgPickerFWidget> {
531 children: [ 547 children: [
532 // VEmptyView(46), 548 // VEmptyView(46),
533 Image.asset( 549 Image.asset(
534 - Utils.getImgPath('add_store'),  
535 - width: ScreenUtil().setWidth(28),  
536 - height: ScreenUtil().setWidth(28), 550 + Utils.getImgPath('f_add_image'),
  551 + width: ScreenUtil().setWidth(64),
  552 + height: ScreenUtil().setWidth(64),
537 ), 553 ),
538 // VEmptyView(10), 554 // VEmptyView(10),
539 // Text( 555 // Text(
@@ -28,6 +28,9 @@ class UploadImageProvider extends ChangeNotifier { @@ -28,6 +28,9 @@ class UploadImageProvider extends ChangeNotifier {
28 List<UploadImgModel> feastRemarkImageList = []; //宴会备注图片信息列表 28 List<UploadImgModel> feastRemarkImageList = []; //宴会备注图片信息列表
29 List<UploadImgModel> feastRemarkXtImageList = []; //宴会备注图片信息列表----选台 29 List<UploadImgModel> feastRemarkXtImageList = []; //宴会备注图片信息列表----选台
30 List<UploadImgModel> feastRemarkDjImageList = []; //宴会备注图片信息列表----定金 30 List<UploadImgModel> feastRemarkDjImageList = []; //宴会备注图片信息列表----定金
  31 + List<UploadImgModel> feastRemarkContractImageList = []; //宴会备注图片信息列表----合同
  32 + List<UploadImgModel> feastRemarkInvoiceImageList = []; //宴会备注图片信息列表----发票
  33 +
31 int countUpload = 0; 34 int countUpload = 0;
32 UploadImageProvider() { 35 UploadImageProvider() {
33 touxiang.process = 0.01; 36 touxiang.process = 0.01;
@@ -881,9 +881,16 @@ class NavigatorUtil { @@ -881,9 +881,16 @@ class NavigatorUtil {
881 return _navigateTo(context, "${Routes.feast_wine_page}", replace: replace); 881 return _navigateTo(context, "${Routes.feast_wine_page}", replace: replace);
882 } 882 }
883 883
884 - ///宴会----添加配置 884 + ///宴会----添加配置
885 static Future<dynamic> goFeastSetPage(BuildContext context, 885 static Future<dynamic> goFeastSetPage(BuildContext context,
886 {replace = false, bool onlyShow = false}) { 886 {replace = false, bool onlyShow = false}) {
887 return _navigateTo(context, "${Routes.feast_set_page}", replace: replace); 887 return _navigateTo(context, "${Routes.feast_set_page}", replace: replace);
888 } 888 }
  889 +
  890 + ///宴会----添加发票
  891 + static Future<dynamic> goFeastInvoicePage(BuildContext context,
  892 + {replace = false, bool onlyShow = false}) {
  893 + return _navigateTo(context, "${Routes.feast_invoice_page}",
  894 + replace: replace);
  895 + }
889 } 896 }
@@ -144,6 +144,7 @@ import 'package:provider/provider.dart'; @@ -144,6 +144,7 @@ import 'package:provider/provider.dart';
144 import '../pages/feast/feast_board.dart'; 144 import '../pages/feast/feast_board.dart';
145 import '../pages/feast/feast_create_page.dart'; 145 import '../pages/feast/feast_create_page.dart';
146 import '../pages/feast/feast_deposit_page.dart'; 146 import '../pages/feast/feast_deposit_page.dart';
  147 +import '../pages/feast/feast_invoice_page.dart';
147 import '../pages/feast/feast_menu_page.dart'; 148 import '../pages/feast/feast_menu_page.dart';
148 import '../pages/feast/feast_set_page.dart'; 149 import '../pages/feast/feast_set_page.dart';
149 import '../pages/feast/feast_setmeal_page.dart'; 150 import '../pages/feast/feast_setmeal_page.dart';
@@ -1386,7 +1387,6 @@ var feastWinePageHandle = new Handler( @@ -1386,7 +1387,6 @@ var feastWinePageHandle = new Handler(
1386 create: (_) => FeastModel(), child: FeastWinePage()); 1387 create: (_) => FeastModel(), child: FeastWinePage());
1387 }); 1388 });
1388 1389
1389 -  
1390 ///宴会----添加配置 1390 ///宴会----添加配置
1391 var feastSetPageHandle = new Handler( 1391 var feastSetPageHandle = new Handler(
1392 handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { 1392 handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) {
@@ -1397,4 +1397,12 @@ var feastSetPageHandle = new Handler( @@ -1397,4 +1397,12 @@ var feastSetPageHandle = new Handler(
1397 create: (_) => FeastModel(), child: FeastSetPage()); 1397 create: (_) => FeastModel(), child: FeastSetPage());
1398 }); 1398 });
1399 1399
  1400 +///宴会----添加发票
  1401 +var feastInvoicePageHandle = new Handler(
  1402 + handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) {
  1403 + // String uids = params["uids"].first;
1400 1404
  1405 + // bool onlyShow = FluroConvertUtils.string2bool(params["onlyShow"].first);
  1406 + return ChangeNotifierProvider<FeastModel>(
  1407 + create: (_) => FeastModel(), child: FeastInvoicePage());
  1408 +});
@@ -122,6 +122,7 @@ class Routes { @@ -122,6 +122,7 @@ class Routes {
122 static String feast_setmeal_page = "/feast_setmeal_page"; //宴会----添加套餐 122 static String feast_setmeal_page = "/feast_setmeal_page"; //宴会----添加套餐
123 static String feast_wine_page = "/feast_wine_page"; //宴会----添加酒水 123 static String feast_wine_page = "/feast_wine_page"; //宴会----添加酒水
124 static String feast_set_page = "/feast_set_page"; //宴会----添加配置 124 static String feast_set_page = "/feast_set_page"; //宴会----添加配置
  125 + static String feast_invoice_page = "/feast_invoice_page"; //宴会----添加发票
125 126
126 static void configureRoutes(FluroRouter router) { 127 static void configureRoutes(FluroRouter router) {
127 router.notFoundHandler = new Handler( 128 router.notFoundHandler = new Handler(
@@ -247,5 +248,6 @@ class Routes { @@ -247,5 +248,6 @@ class Routes {
247 router.define(feast_setmeal_page, handler: feastSetmealPageHandle); 248 router.define(feast_setmeal_page, handler: feastSetmealPageHandle);
248 router.define(feast_wine_page, handler: feastWinePageHandle); 249 router.define(feast_wine_page, handler: feastWinePageHandle);
249 router.define(feast_set_page, handler: feastSetPageHandle); 250 router.define(feast_set_page, handler: feastSetPageHandle);
  251 + router.define(feast_invoice_page, handler: feastInvoicePageHandle);
250 } 252 }
251 } 253 }
@@ -17,7 +17,9 @@ enum UploadType { @@ -17,7 +17,9 @@ enum UploadType {
17 TableManagerType, //桌面照片管理 17 TableManagerType, //桌面照片管理
18 FeastRemarkType, //宴会备注--意向 18 FeastRemarkType, //宴会备注--意向
19 FeastRemarkXtType, //宴会备注--选台 19 FeastRemarkXtType, //宴会备注--选台
20 - FeastRemarkDjType //宴会备注--定金 20 + FeastRemarkDjType, //宴会备注--定金
  21 + FeastRemarkContractType, //宴会备注--合同
  22 + FeastRemarkInvoiceType //宴会备注--发票
21 23
22 } 24 }
23 25
@@ -77,6 +79,14 @@ class UploadImageUtil { @@ -77,6 +79,14 @@ class UploadImageUtil {
77 } else if (uploadType == UploadType.FeastRemarkDjType) { 79 } else if (uploadType == UploadType.FeastRemarkDjType) {
78 //宴会备注 ---定金 80 //宴会备注 ---定金
79 uploadImageProvider.feastRemarkDjImageList[index].process = percent; 81 uploadImageProvider.feastRemarkDjImageList[index].process = percent;
  82 + } else if (uploadType == UploadType.FeastRemarkContractType) {
  83 + //宴会备注 ---合同
  84 + uploadImageProvider.feastRemarkContractImageList[index].process =
  85 + percent;
  86 + } else if (uploadType == UploadType.FeastRemarkInvoiceType) {
  87 + //宴会备注 ---发票
  88 + uploadImageProvider.feastRemarkInvoiceImageList[index].process =
  89 + percent;
80 } 90 }
81 91
82 uploadImageProvider.notifyListeners(); 92 uploadImageProvider.notifyListeners();
@@ -145,6 +155,16 @@ class UploadImageUtil { @@ -145,6 +155,16 @@ class UploadImageUtil {
145 //宴会备注---定金 155 //宴会备注---定金
146 uploadImageProvider.feastRemarkDjImageList[index].process = 1; 156 uploadImageProvider.feastRemarkDjImageList[index].process = 1;
147 uploadImageProvider.feastRemarkDjImageList[index].qiniuUrl = imgUrl; 157 uploadImageProvider.feastRemarkDjImageList[index].qiniuUrl = imgUrl;
  158 + } else if (uploadType == UploadType.FeastRemarkContractType) {
  159 + //宴会备注 ---合同
  160 + uploadImageProvider.feastRemarkContractImageList[index].process = 1;
  161 + uploadImageProvider.feastRemarkContractImageList[index].qiniuUrl =
  162 + imgUrl;
  163 + } else if (uploadType == UploadType.FeastRemarkInvoiceType) {
  164 + //宴会备注 ---发票
  165 + uploadImageProvider.feastRemarkInvoiceImageList[index].process = 1;
  166 + uploadImageProvider.feastRemarkInvoiceImageList[index].qiniuUrl =
  167 + imgUrl;
148 } 168 }
149 169
150 // 取消当前任务 170 // 取消当前任务