Browse Source

更多支付的UI基本优化完

张洋 1 month ago
parent
commit
0b75289082
40 changed files with 442 additions and 161 deletions
  1. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_green_h.png
  2. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_green_n.png
  3. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_green_p.png
  4. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_red_h.png
  5. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_red_n.png
  6. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_red_p.png
  7. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_green_h.png
  8. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_green_n.png
  9. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_green_p.png
  10. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_red_h.png
  11. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_red_n.png
  12. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_red_p.png
  13. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/card_r10.png
  14. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/dc_ico_cash.png
  15. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/dc_ico_fuli.png
  16. 96 94
      bin/Win32/Debug/zhipuzi_pos_windows/skin/diandan_page.xml
  17. 3 3
      bin/Win32/Debug/zhipuzi_pos_windows/skin/diandan_zhangdanmingxi_item.xml
  18. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/input_r8_h.png
  19. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/input_r8_n.png
  20. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/input_r8_p.png
  21. 35 26
      bin/Win32/Debug/zhipuzi_pos_windows/skin/memo_edit_dlg.xml
  22. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_cash_h.png
  23. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_cash_n.png
  24. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_cash_p.png
  25. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_fuli_h.png
  26. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_fuli_n.png
  27. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_fuli_p.png
  28. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/tag_pill_h.png
  29. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/tag_pill_n.png
  30. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/tag_pill_s.png
  31. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/tag_pill_sp.png
  32. BIN
      bin/Win32/Release/zhipuzi_pos_windows/zhipuzi_pos_windows.exe
  33. 47 32
      zhipuzi_pos_windows/page/CDiandanPageUI.cpp
  34. 1 1
      zhipuzi_pos_windows/page/CDiandanPageUI.h
  35. 3 0
      zhipuzi_pos_windows/page/CZhengcanDiandanPageUI.cpp
  36. BIN
      zhipuzi_pos_windows/resource/skin.zip
  37. 203 1
      zhipuzi_pos_windows/wnd/CMemoWnd.cpp
  38. 20 0
      zhipuzi_pos_windows/wnd/CMemoWnd.h
  39. 28 4
      zhipuzi_pos_windows/wnd/CNumInputWnd.cpp
  40. 6 0
      zhipuzi_pos_windows/wnd/CNumInputWnd.h

BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_green_h.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_green_n.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_green_p.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_red_h.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_red_n.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_pill_red_p.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_green_h.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_green_n.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_green_p.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_red_h.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_red_n.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/btn_r8_red_p.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/card_r10.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/dc_ico_cash.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/dc_ico_fuli.png


+ 96 - 94
bin/Win32/Debug/zhipuzi_pos_windows/skin/diandan_page.xml

@@ -69,10 +69,6 @@
 						</VerticalLayout>
 					</HorizontalLayout>
 
-				<HorizontalLayout name="diandan_page_zhengdanbeizhu_layout" height="40" bkcolor="#FFF5F7FA" padding="1,0,1,0" childpadding="8" childvalign="vcenter" visible="false">
-					<Control bkimage="dc_ico_warn12.png" width="12" height="12" maxheight="12" padding="14,0,0,0"/>
-					<Label name="diandan_page_label_zhengdanbeizhu" text="整单备注:" font="13" textcolor="#FFA8ADB3" valign="center"/>
-				</HorizontalLayout>
 					<List name="list_diandan_cart" inset="1,0,1,0" vscrollbar="true" itemselectedbkcolor="#FFE8F7F0" itemhotbkcolor="#FFEFF9F4">
 						<ListHeader inset="14,0,14,0" height="34">
 							<ListHeaderItem text="商品" width="238" align="left" font="13" textcolor="#FF5F6368"/>
@@ -81,6 +77,10 @@
 							<Control height="1" float="true" pos="0,33,388,34" bkcolor="#FFF0F1F3" mouse="false"/>
 						</ListHeader>
 					</List>
+					<HorizontalLayout name="diandan_page_zhengdanbeizhu_layout" height="40" bkcolor="#FFF5F7FA" padding="1,0,1,0" childpadding="8" childvalign="vcenter" visible="false">
+						<Control bkimage="dc_ico_warn12.png" width="12" height="12" maxheight="12" padding="14,0,0,0"/>
+						<Label name="diandan_page_label_zhengdanbeizhu" text="整单备注:" font="13" textcolor="#FFA8ADB3" valign="center"/>
+					</HorizontalLayout>
 					<!-- 虚线分隔:商品明细 / 优惠 -->
 					<Control height="1" width="388" bkimage="file='dc_dashline.png'"/>
 
@@ -195,131 +195,133 @@
 			</VerticalLayout>
 
 			<!-- ============ 结算面板(默认隐藏,内部保持原样) ============ -->
-			<HorizontalLayout name="diandan_jiesuan_layout" bkcolor="#FFFFFFFF" visible="false">
-				<VerticalLayout name="diandan_jiesuan_youhui_layout" width="330">
-					<HorizontalLayout height="58">
-						<Label text="选择优惠" width="100" height="58" padding="20,0,0,0" font="20"/>
+			<HorizontalLayout name="diandan_jiesuan_layout" bkcolor="#FFF5F7FA" childpadding="12" visible="false">
+				<VerticalLayout name="diandan_jiesuan_youhui_layout" width="330" bkimage="file='card_r10.png' corner='10,10,10,10'">
+					<HorizontalLayout height="48" inset="18,0,18,0" childvalign="vcenter">
+						<Label text="选择优惠" width="120" height="48" font="16" textcolor="#FF1F2329" valign="center"/>
 						<Control></Control>
-						<Button name="diandan_jiesuan_yincangyouhui_btn" text="隐藏优惠" height="36" maxheight="36" width="90" padding="0,11,10,0" textcolor="#FF2E9B5C" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FF2E9B5C" bkcolor="#FFFFFFFF"/>
+						<Button name="diandan_jiesuan_yincangyouhui_btn" text="隐藏优惠" height="30" maxheight="30" width="80" font="12" textcolor="#FF3CB371" normalimage="file='btn_r8_green_n.png' corner='8,8,8,8'" hotimage="file='btn_r8_green_h.png' corner='8,8,8,8'" pushedimage="file='btn_r8_green_p.png' corner='8,8,8,8'"/>
 					</HorizontalLayout>
 
-					<Control height="1" bkcolor="#FFEBE8E8" padding="10,0,10,0"/>
+					<Control height="1" bkcolor="#FFF0F1F3"/>
 
-					<HorizontalLayout padding="0,15,0,0" height="48">
-						<Label text="整单折扣:" width="90" height="48" padding="20,0,0,0"/>
-						<Button name="diandan_jiesuan_zhekou_value" text="" height="48" maxheight="48" width="160" padding="0,0,0,0" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FFA9A9A9" bkcolor="#00FFFFFF"/>
-						<Label text="%" width="60" height="48" padding="20,0,0,0"/>
-					</HorizontalLayout>
+					<VerticalLayout inset="18,12,18,12" childpadding="9">
+						<HorizontalLayout height="36" childpadding="8" childvalign="vcenter">
+							<Label text="整单折扣:" width="72" maxwidth="72" height="36" font="13" textcolor="#FF5F6368" valign="center"/>
+							<Button name="diandan_jiesuan_zhekou_value" text="100" height="32" maxheight="32" width="128" maxwidth="128" font="13" textcolor="#FF1F2329" normalimage="file='input_r8_n.png' corner='8,8,8,8'" hotimage="file='input_r8_h.png' corner='8,8,8,8'" pushedimage="file='input_r8_p.png' corner='8,8,8,8'"/>
+							<Label text="%" width="40" height="36" font="13" textcolor="#FF5F6368" valign="center"/>
+						</HorizontalLayout>
 
-					<HorizontalLayout padding="0,15,0,0" height="48">
-						<Label text="加价:" width="90" height="48" padding="20,0,0,0"/>
-						<Button name="diandan_jiesuan_jiajia_value" text="" height="48" maxheight="48" width="160" padding="0,0,0,0" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FFA9A9A9" bkcolor="#00FFFFFF"/>
-						<Label text="元" width="60" height="48" padding="20,0,0,0"/>
-					</HorizontalLayout>
+						<HorizontalLayout height="36" childpadding="8" childvalign="vcenter">
+							<Label text="加价:" width="72" maxwidth="72" height="36" font="13" textcolor="#FF5F6368" valign="center"/>
+							<Button name="diandan_jiesuan_jiajia_value" text="0" height="32" maxheight="32" width="128" maxwidth="128" font="13" textcolor="#FF1F2329" normalimage="file='input_r8_n.png' corner='8,8,8,8'" hotimage="file='input_r8_h.png' corner='8,8,8,8'" pushedimage="file='input_r8_p.png' corner='8,8,8,8'"/>
+							<Label text="元" width="40" height="36" font="13" textcolor="#FF5F6368" valign="center"/>
+						</HorizontalLayout>
 
-					<HorizontalLayout padding="0,15,0,0" height="48">
-						<Label text="优惠:" width="90" height="48" padding="20,0,0,0"/>
-						<Button name="diandan_jiesuan_youhui_value" text="" height="48" maxheight="48" width="160" padding="0,0,0,0" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FFA9A9A9" bkcolor="#00FFFFFF"/>
-						<Label text="元" width="60" height="48" padding="20,0,0,0"/>
-					</HorizontalLayout>
+						<HorizontalLayout height="36" childpadding="8" childvalign="vcenter">
+							<Label text="优惠:" width="72" maxwidth="72" height="36" font="13" textcolor="#FF5F6368" valign="center"/>
+							<Button name="diandan_jiesuan_youhui_value" text="0" height="32" maxheight="32" width="128" maxwidth="128" font="13" textcolor="#FF1F2329" normalimage="file='input_r8_n.png' corner='8,8,8,8'" hotimage="file='input_r8_h.png' corner='8,8,8,8'" pushedimage="file='input_r8_p.png' corner='8,8,8,8'"/>
+							<Label text="元" width="40" height="36" font="13" textcolor="#FF5F6368" valign="center"/>
+						</HorizontalLayout>
 
-					<HorizontalLayout padding="0,15,0,0" height="48">
-						<Label text="优惠券:" width="90" height="48" padding="20,0,0,0"/>
-						<Label name="diandan_jiesuan_youhuiquan_status" text="未使用" width="70" height="48" padding="0,0,0,0"/>
-						<Button name="diandan_jiesuan_youhuiquan_btn" text="扫码使用" height="35" maxheight="35" width="90" padding="0,6,0,0" textcolor="#FF2E9B5C" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FF2E9B5C" bkcolor="#FFFFFFFF"/>
-						<Button name="diandan_jiesuan_youhuiquan_btn_cancel" visible="false" text="取消使用" height="35" maxheight="35" width="90" padding="15,6,0,0" textcolor="#FFE14B4A" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FFE14B4A" bkcolor="#FFFFFFFF"/>
-					</HorizontalLayout>
+						<HorizontalLayout height="36" childpadding="8" childvalign="vcenter">
+							<Label text="优惠券:" width="72" maxwidth="72" height="36" font="13" textcolor="#FF5F6368" valign="center"/>
+							<Label name="diandan_jiesuan_youhuiquan_status" text="未使用" width="60" maxwidth="60" height="36" font="13" textcolor="#FF8A9099" valign="center"/>
+							<Control></Control>
+							<Button name="diandan_jiesuan_youhuiquan_btn" text="扫码使用" height="28" maxheight="28" width="80" font="12" textcolor="#FF3CB371" normalimage="file='btn_r8_green_n.png' corner='8,8,8,8'" hotimage="file='btn_r8_green_h.png' corner='8,8,8,8'" pushedimage="file='btn_r8_green_p.png' corner='8,8,8,8'"/>
+							<Button name="diandan_jiesuan_youhuiquan_btn_cancel" visible="false" text="取消使用" height="28" maxheight="28" width="80" font="12" textcolor="#FFE14B4A" normalimage="file='btn_r8_red_n.png' corner='8,8,8,8'" hotimage="file='btn_r8_red_h.png' corner='8,8,8,8'" pushedimage="file='btn_r8_red_p.png' corner='8,8,8,8'"/>
+						</HorizontalLayout>
 
-					<HorizontalLayout padding="0,15,0,0" height="48">
-						<Label text="商品券:" width="90" height="48" padding="20,0,0,0"/>
-						<Label name="diandan_jiesuan_shangpinquan_status" text="未使用" width="70" height="48" padding="0,0,0,0"/>
-						<Button name="diandan_jiesuan_shangpinquan_btn" text="扫码使用" height="35" maxheight="35" width="90" padding="0,6,0,0" textcolor="#FF2E9B5C" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FF2E9B5C" bkcolor="#FFFFFFFF"/>
-						<Button name="diandan_jiesuan_shangpinquan_btn_cancel" visible="false" text="取消使用" height="35" maxheight="35" width="90" padding="15,6,0,0" textcolor="#FFE14B4A" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FFE14B4A" bkcolor="#FFFFFFFF"/>
-					</HorizontalLayout>
+						<HorizontalLayout height="36" childpadding="8" childvalign="vcenter">
+							<Label text="商品券:" width="72" maxwidth="72" height="36" font="13" textcolor="#FF5F6368" valign="center"/>
+							<Label name="diandan_jiesuan_shangpinquan_status" text="未使用" width="60" maxwidth="60" height="36" font="13" textcolor="#FF8A9099" valign="center"/>
+							<Control></Control>
+							<Button name="diandan_jiesuan_shangpinquan_btn" text="扫码使用" height="28" maxheight="28" width="80" font="12" textcolor="#FF3CB371" normalimage="file='btn_r8_green_n.png' corner='8,8,8,8'" hotimage="file='btn_r8_green_h.png' corner='8,8,8,8'" pushedimage="file='btn_r8_green_p.png' corner='8,8,8,8'"/>
+							<Button name="diandan_jiesuan_shangpinquan_btn_cancel" visible="false" text="取消使用" height="28" maxheight="28" width="80" font="12" textcolor="#FFE14B4A" normalimage="file='btn_r8_red_n.png' corner='8,8,8,8'" hotimage="file='btn_r8_red_h.png' corner='8,8,8,8'" pushedimage="file='btn_r8_red_p.png' corner='8,8,8,8'"/>
+						</HorizontalLayout>
 
-					<HorizontalLayout padding="0,15,0,0" height="48">
-						<Label text="次卡:" width="90" height="48" padding="20,0,0,0"/>
-						<Label name="diandan_jiesuan_cika_status" text="未使用" width="70" height="48" padding="0,0,0,0"/>
-						<Button name="diandan_jiesuan_cika_btn" text="扫码使用" height="35" maxheight="35" width="90" padding="0,6,0,0" textcolor="#FF2E9B5C" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FF2E9B5C" bkcolor="#FFFFFFFF"/>
-						<Button name="diandan_jiesuan_cika_btn_cancel" visible="false" text="取消使用" height="35" maxheight="35" width="90" padding="15,6,0,0" textcolor="#FFE14B4A" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FFE14B4A" bkcolor="#FFFFFFFF"/>
-					</HorizontalLayout>
+						<HorizontalLayout height="36" childpadding="8" childvalign="vcenter">
+							<Label text="次卡:" width="72" maxwidth="72" height="36" font="13" textcolor="#FF5F6368" valign="center"/>
+							<Label name="diandan_jiesuan_cika_status" text="未使用" width="60" maxwidth="60" height="36" font="13" textcolor="#FF8A9099" valign="center"/>
+							<Control></Control>
+							<Button name="diandan_jiesuan_cika_btn" text="扫码使用" height="28" maxheight="28" width="80" font="12" textcolor="#FF3CB371" normalimage="file='btn_r8_green_n.png' corner='8,8,8,8'" hotimage="file='btn_r8_green_h.png' corner='8,8,8,8'" pushedimage="file='btn_r8_green_p.png' corner='8,8,8,8'"/>
+							<Button name="diandan_jiesuan_cika_btn_cancel" visible="false" text="取消使用" height="28" maxheight="28" width="80" font="12" textcolor="#FFE14B4A" normalimage="file='btn_r8_red_n.png' corner='8,8,8,8'" hotimage="file='btn_r8_red_h.png' corner='8,8,8,8'" pushedimage="file='btn_r8_red_p.png' corner='8,8,8,8'"/>
+						</HorizontalLayout>
 
-					<HorizontalLayout padding="0,15,0,0" height="48">
-						<Label text="权益卡:" width="90" height="48" padding="20,0,0,0"/>
-						<Label name="diandan_jiesuan_quanyika_status" text="未使用" width="70" height="48" padding="0,0,0,0"/>
-						<Button name="diandan_jiesuan_quanyika_btn" text="扫码使用" height="35" maxheight="35" width="90" padding="0,6,0,0" textcolor="#FF2E9B5C" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FF2E9B5C" bkcolor="#FFFFFFFF"/>
-						<Button name="diandan_jiesuan_quanyika_btn_cancel" visible="false" text="取消使用" height="35" maxheight="35" width="90" padding="15,6,0,0" textcolor="#FFE14B4A" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FFE14B4A" bkcolor="#FFFFFFFF"/>
-					</HorizontalLayout>
+						<HorizontalLayout height="36" childpadding="8" childvalign="vcenter">
+							<Label text="权益卡:" width="72" maxwidth="72" height="36" font="13" textcolor="#FF5F6368" valign="center"/>
+							<Label name="diandan_jiesuan_quanyika_status" text="未使用" width="60" maxwidth="60" height="36" font="13" textcolor="#FF8A9099" valign="center"/>
+							<Control></Control>
+							<Button name="diandan_jiesuan_quanyika_btn" text="扫码使用" height="28" maxheight="28" width="80" font="12" textcolor="#FF3CB371" normalimage="file='btn_r8_green_n.png' corner='8,8,8,8'" hotimage="file='btn_r8_green_h.png' corner='8,8,8,8'" pushedimage="file='btn_r8_green_p.png' corner='8,8,8,8'"/>
+							<Button name="diandan_jiesuan_quanyika_btn_cancel" visible="false" text="取消使用" height="28" maxheight="28" width="80" font="12" textcolor="#FFE14B4A" normalimage="file='btn_r8_red_n.png' corner='8,8,8,8'" hotimage="file='btn_r8_red_h.png' corner='8,8,8,8'" pushedimage="file='btn_r8_red_p.png' corner='8,8,8,8'"/>
+						</HorizontalLayout>
 
-					<HorizontalLayout padding="0,15,0,0" height="130">
-						<Label text="抹零:" width="90" height="48" padding="20,0,0,0"/>
-						<VerticalLayout padding="0,10,0,0">
-							<HorizontalLayout padding="0,0,30,0" width="200" height="30">
-								<CheckBox name="diandan_jiesuan_moling_bumoling" group="diandan_jiesuan_moling" padding="0,7,0,7" width="13" height="13" maxheight="13" normalimage="file='RadioBtnNon.png'" hotimage="file='RadioBtnNon.png'" selectedimage="file='RadioBtnSel.png'"/>
-								<Label text="不抹零" width="150" height="30" maxheight="30" padding="15,0,0,0"/>
-							</HorizontalLayout>
-
-							<HorizontalLayout padding="0,0,30,0" width="200" height="30">
-								<CheckBox name="diandan_jiesuan_moling_molingdaojiao" group="diandan_jiesuan_moling" padding="0,7,0,7" width="13" height="13" maxheight="13" normalimage="file='RadioBtnNon.png'" hotimage="file='RadioBtnNon.png'" selectedimage="file='RadioBtnSel.png'"/>
-								<Label text="抹零到角" width="150" height="30" maxheight="30" padding="15,0,0,0"/>
-							</HorizontalLayout>
-
-							<HorizontalLayout padding="0,0,30,0" width="200" height="30">
-								<CheckBox name="diandan_jiesuan_moling_molingdaoyuan" group="diandan_jiesuan_moling" padding="0,7,0,7" width="13" height="13" maxheight="13" normalimage="file='RadioBtnNon.png'" hotimage="file='RadioBtnNon.png'" selectedimage="file='RadioBtnSel.png'"/>
-								<Label text="抹零到元" width="150" height="30" maxheight="30" padding="15,0,0,0"/>
-							</HorizontalLayout>
-						</VerticalLayout>
-					</HorizontalLayout>
+						<HorizontalLayout height="96" childpadding="8">
+							<Label text="抹零:" width="72" maxwidth="72" height="36" font="13" textcolor="#FF5F6368"/>
+							<VerticalLayout childpadding="8" padding="0,4,0,0">
+								<HorizontalLayout height="24" childpadding="8" childvalign="vcenter">
+									<CheckBox name="diandan_jiesuan_moling_bumoling" group="diandan_jiesuan_moling" width="13" height="13" maxheight="13" normalimage="file='RadioBtnNon.png'" hotimage="file='RadioBtnNon.png'" selectedimage="file='RadioBtnSel.png'"/>
+									<Label text="不抹零" width="120" height="24" font="13" textcolor="#FF5F6368" valign="center"/>
+								</HorizontalLayout>
+								<HorizontalLayout height="24" childpadding="8" childvalign="vcenter">
+									<CheckBox name="diandan_jiesuan_moling_molingdaojiao" group="diandan_jiesuan_moling" width="13" height="13" maxheight="13" normalimage="file='RadioBtnNon.png'" hotimage="file='RadioBtnNon.png'" selectedimage="file='RadioBtnSel.png'"/>
+									<Label text="抹零到角" width="120" height="24" font="13" textcolor="#FF5F6368" valign="center"/>
+								</HorizontalLayout>
+								<HorizontalLayout height="24" childpadding="8" childvalign="vcenter">
+									<CheckBox name="diandan_jiesuan_moling_molingdaoyuan" group="diandan_jiesuan_moling" width="13" height="13" maxheight="13" normalimage="file='RadioBtnNon.png'" hotimage="file='RadioBtnNon.png'" selectedimage="file='RadioBtnSel.png'"/>
+									<Label text="抹零到元" width="120" height="24" font="13" textcolor="#FF5F6368" valign="center"/>
+								</HorizontalLayout>
+							</VerticalLayout>
+						</HorizontalLayout>
+					</VerticalLayout>
 				</VerticalLayout>
 
-				<Control name="diandan_jiesuan_youhui_line" width="1" bkcolor="#FFEBE8E8"/>
 
-				<VerticalLayout name="diandan_page_jiesuan_zhangdan_layout" vscrollbar="true">
-					<HorizontalLayout height="58">
-						<Label text="账单明细" height="58" padding="20,0,0,0" font="20"/>
+				<VerticalLayout name="diandan_page_jiesuan_zhangdan_layout" vscrollbar="true" bkimage="file='card_r10.png' corner='10,10,10,10'">
+					<HorizontalLayout height="48">
+						<Label text="账单明细" height="48" padding="18,0,0,0" font="16"/>
 						<Control></Control>
-						<Button name="diandan_jiesuan_xianshiyouhui_btn" text="显示优惠" visible="false" height="36" maxheight="36" width="90" padding="0,11,10,0" textcolor="#FF2E9B5C" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FF2E9B5C" bkcolor="#FFFFFFFF"/>
+						<Button name="diandan_jiesuan_xianshiyouhui_btn" text="显示优惠" visible="false" height="30" maxheight="30" width="80" padding="0,11,18,0" textcolor="#FF3CB371" normalimage="file='btn_r8_green_n.png' corner='8,8,8,8'" hotimage="file='btn_r8_green_h.png' corner='8,8,8,8'" pushedimage="file='btn_r8_green_p.png' corner='8,8,8,8'"/>
 					</HorizontalLayout>
 
-					<Control height="1" bkcolor="#FFEBE8E8" padding="10,0,10,0"/>
+					<Control height="1" bkcolor="#FFF0F1F3" padding="10,0,10,0"/>
 
 					<VerticalLayout name="diandan_jiesuan_zhangdanmingxi_jiage_layout" padding="20,0,20,0" height="100">
 					</VerticalLayout>
 
-					<Control height="1" bkcolor="#FFEBE8E8" padding="10,10,10,0"/>
+					<Control height="1" bkcolor="#FFF0F1F3" padding="10,10,10,0"/>
 
 					<HorizontalLayout height="50">
 						<Control></Control>
-						<Label name="diandan_jiesuan_total_yingshou" text="" width="150" height="50" align="right" padding="0,0,15,0"/>
+						<Label name="diandan_jiesuan_total_yingshou" text="" width="240" height="50" align="right" padding="0,0,18,0" showhtml="true" font="113"/>
 					</HorizontalLayout>
 
-					<Label text="支付方式" width="100" height="58" padding="20,30,0,0" font="20"/>
+					<Label text="支付方式" width="120" height="48" padding="18,18,0,0" font="16"/>
 
-					<Control height="1" bkcolor="#FFEBE8E8" padding="10,0,10,0"/>
 
 					<HorizontalLayout name="diandan_jiesuan_zhifufangshi_layout">
-						<HorizontalLayout name="diandan_jiesuan_zhifufangshi_weixinzhifu" width="120" height="80" float="true">
-							<Button name="diandan_jiesuan_zhifufangshi_weixinzhifu_btn" text="" height="80" width="120" padding="0,0,0,0" textcolor="#FF999999" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#FFFF4242"/>
-							<Control name="zhifu_icon" bkimage="weixinzhifu_icon.png" width="24" height="22" float="true" pos="53,10,77,32" mouse="false"/>
-							<Label name="zhifu_name" text="微信支付/支付宝/云闪付" wordbreak="true" width="115" height="40" font="14" float="true" pos="2,35,117,75" textcolor="#FFFFFFFF" mouse="false"/>
+						<HorizontalLayout name="diandan_jiesuan_zhifufangshi_weixinzhifu" width="120" height="54" float="true">
+							<Button name="diandan_jiesuan_zhifufangshi_weixinzhifu_btn" text="" width="120" height="54" maxheight="54" normalimage="file='pay_scan_n.png' corner='8,8,8,8'" hotimage="file='pay_scan_h.png' corner='8,8,8,8'" pushedimage="file='pay_scan_p.png' corner='8,8,8,8'"/>
+							<Control name="zhifu_icon" bkimage="dc_ico_scan.png" width="24" height="24" float="true" pos="16,15,40,39" mouse="false"/>
+							<Label name="zhifu_name" text="扫码支付" font="13" textcolor="#FFFFFFFF" float="true" pos="46,0,116,54" align="left" valign="center" endellipsis="true" mouse="false"/>
 						</HorizontalLayout>
 
-						<HorizontalLayout name="diandan_jiesuan_zhifufangshi_huiyuan" width="120" height="80" float="true">
-							<Button name="diandan_jiesuan_zhifufangshi_huiyuan_btn" text="" height="80" width="120" padding="0,0,0,0" textcolor="#FF999999" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#FFFF8910"/>
-							<Control name="zhifu_icon" bkimage="huiyuanzhifu_icon.png" width="26" height="20" float="true" pos="50,10,76,30" mouse="false"/>
-							<Label name="zhifu_name" text="会员支付" width="180" height="35" font="14" float="true" pos="30,35,210,70" textcolor="#FFFFFFFF" mouse="false"/>
+<HorizontalLayout name="diandan_jiesuan_zhifufangshi_huiyuan" width="120" height="54" float="true">
+							<Button name="diandan_jiesuan_zhifufangshi_huiyuan_btn" text="" width="120" height="54" maxheight="54" normalimage="file='pay_member_n.png' corner='8,8,8,8'" hotimage="file='pay_member_h.png' corner='8,8,8,8'" pushedimage="file='pay_member_p.png' corner='8,8,8,8'"/>
+							<Control name="zhifu_icon" bkimage="dc_ico_card.png" width="24" height="24" float="true" pos="16,15,40,39" mouse="false"/>
+							<Label name="zhifu_name" text="会员支付" font="13" textcolor="#FFFFFFFF" float="true" pos="46,0,116,54" align="left" valign="center" endellipsis="true" mouse="false"/>
 						</HorizontalLayout>
 
-						<HorizontalLayout name="diandan_jiesuan_zhifufangshi_xianjin" width="120" height="80" float="true">
-							<Button name="diandan_jiesuan_zhifufangshi_xianjin_btn" text="" height="80" width="120" padding="0,0,0,0" textcolor="#FF999999" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#FF52CB4B"/>
-							<Control name="zhifu_icon" bkimage="xianjinzhifu_icon.png" width="21" height="24" float="true" pos="50,10,71,34" mouse="false"/>
-							<Label name="zhifu_name" text="现金支付" width="180" height="35" font="14" float="true" pos="30,35,210,70" textcolor="#FFFFFFFF" mouse="false"/>
+<HorizontalLayout name="diandan_jiesuan_zhifufangshi_xianjin" width="120" height="54" float="true">
+							<Button name="diandan_jiesuan_zhifufangshi_xianjin_btn" text="" width="120" height="54" maxheight="54" normalimage="file='pay_cash_n.png' corner='8,8,8,8'" hotimage="file='pay_cash_h.png' corner='8,8,8,8'" pushedimage="file='pay_cash_p.png' corner='8,8,8,8'"/>
+							<Control name="zhifu_icon" bkimage="dc_ico_cash.png" width="24" height="24" float="true" pos="16,15,40,39" mouse="false"/>
+							<Label name="zhifu_name" text="现金支付" font="13" textcolor="#FFFFFFFF" float="true" pos="46,0,116,54" align="left" valign="center" endellipsis="true" mouse="false"/>
 						</HorizontalLayout>
 
-						<HorizontalLayout name="diandan_jiesuan_zhifufangshi_fulika" width="122" height="80" float="true">
-							<Button name="diandan_jiesuan_zhifufangshi_fulika_btn" text="" height="80" width="120" padding="0,0,0,0" textcolor="#FF999999" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FFC1C1C1" bkcolor="#FFF7F7F7"/>
-							<Control name="zhifu_icon" bkimage="fulika_icon.png" width="30" height="30" float="true" pos="48,10,78,40" mouse="false"/>
-							<Label name="zhifu_name" text="福利卡" width="180" height="35" font="14" float="true" pos="40,35,220,70" mouse="false"/>
+<HorizontalLayout name="diandan_jiesuan_zhifufangshi_fulika" width="120" height="54" float="true">
+							<Button name="diandan_jiesuan_zhifufangshi_fulika_btn" text="" width="120" height="54" maxheight="54" normalimage="file='pay_fuli_n.png' corner='8,8,8,8'" hotimage="file='pay_fuli_h.png' corner='8,8,8,8'" pushedimage="file='pay_fuli_p.png' corner='8,8,8,8'"/>
+							<Control name="zhifu_icon" bkimage="dc_ico_fuli.png" width="24" height="24" float="true" pos="16,15,40,39" mouse="false"/>
+							<Label name="zhifu_name" text="福利卡" font="13" textcolor="#FFFFFFFF" float="true" pos="46,0,116,54" align="left" valign="center" endellipsis="true" mouse="false"/>
 						</HorizontalLayout>
 					</HorizontalLayout>
 				</VerticalLayout>

+ 3 - 3
bin/Win32/Debug/zhipuzi_pos_windows/skin/diandan_zhangdanmingxi_item.xml

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Window>
-	<HorizontalLayout padding="0,10,0,0">
-		<Label name="name" text=""  height="30" width="100" align="left"/>
+	<HorizontalLayout padding="0,8,0,0">
+		<Label name="name" text="" height="24" width="130" align="left" font="13" textcolor="#FF1F2329"/>
 		<Control></Control>
-		<Label name="value" text=""  height="30" width="150" align="right"/>
+		<Label name="value" text="" height="24" width="160" align="right" font="113" textcolor="#FF1F2329"/>
 	</HorizontalLayout>
 </Window>

BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/input_r8_h.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/input_r8_n.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/input_r8_p.png


+ 35 - 26
bin/Win32/Debug/zhipuzi_pos_windows/skin/memo_edit_dlg.xml

@@ -1,27 +1,36 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Window size="700,434" caption="0,0,0,44" roundcorner="4,4" shadowsize="3" showshadow="true">
-	
-	<VerticalLayout bkimage="shoukuan_bkg.png" >
-		<HorizontalLayout name="shoukuan_title_bkg" height="44" bkcolor="0xFF3CB371">
-			<Label name="memo_dlg_title" text="" height="44" align="center" valign="center" padding="0,0,0,0" textcolor="#FFFFFFFF" font="22"/>
-			<Button name="closebtn" keyboard="false" padding="0,13,15,0" width="16" height="16" normalimage="file='close_normal.png'" hotimage="file='close_hover.png'" pushedimage="file='close_normal.png'"/>
-		</HorizontalLayout>
-		
-		<HorizontalLayout>
-			<VerticalLayout>
-				<Label name="name" text="请输入整单备注" height="30" width="250" padding="30,50,0,0" align="left"/>
-	
-				<Edit name="content" width="600" height="50" padding="30,30,0,0" bkcolor="#FFF2F2F2" nativebkcolor="#FFF2F2F2" font="22"/>
-				
-				<Label name="errinfo" text=""  height="60" width="250" float="true" pos="30,150,280,290" align="left" textcolor="#FFFF0000" visible="false"/>
-				
-				<HorizontalLayout height="56" valign="center" padding="30,100,0,20">
-					<Control></Control>
-					<Button name="save" align="center" text="确认" textcolor="#FFFFFFFF" height="50" width="250" padding="0,0,0,0" normalimage="file='btn_green_zhengchang.png' corner='5,5,5,5'" hotimage="file='btn_green_xuanfu.png' corner='5,5,5,5'" pushedimage="file='btn_green_dianji.png' corner='5,5,5,5'" />
-					<Control></Control>
-				</HorizontalLayout>
-			</VerticalLayout>
-		</HorizontalLayout>
-		
-	</VerticalLayout>
+<?xml version="1.0" encoding="UTF-8"?>

+<Window size="700,446" caption="0,0,0,44" roundcorner="4,4" shadowsize="3" showshadow="true">

+	

+	<VerticalLayout bkimage="shoukuan_bkg.png" >

+		<HorizontalLayout name="shoukuan_title_bkg" height="44" bkcolor="0xFF3CB371">

+			<Label name="memo_dlg_title" text="" height="44" align="center" valign="center" padding="0,0,0,0" textcolor="#FFFFFFFF" font="22"/>

+			<Button name="closebtn" keyboard="false" padding="0,13,15,0" width="16" height="16" normalimage="file='close_normal.png'" hotimage="file='close_hover.png'" pushedimage="file='close_normal.png'"/>

+		</HorizontalLayout>

+		

+		<HorizontalLayout>

+			<VerticalLayout>

+				<HorizontalLayout height="22" padding="30,16,30,0">

+					<Label name="preset_title" text="快捷选择" maxheight="22" width="80" align="left" valign="center" font="13" textcolor="#FF5F6368"/>

+					<Label name="preset_count" text="已选 0 条" maxheight="22" align="right" valign="center" font="12" textcolor="#FF2E9B5C"/>

+				</HorizontalLayout>

+

+				<TileLayout name="memo_preset" height="154" padding="30,10,30,0" itemsize="98,34" childpadding="6"/>

+

+				<Label name="name" text="补充说明(可不填)" height="22" padding="30,16,30,0" align="left" font="13" textcolor="#FF5F6368"/>

+

+				<Edit name="content" width="640" height="50" padding="30,8,30,0" bkcolor="#FFF2F2F2" nativebkcolor="#FFF2F2F2" font="22"/>

+

+				<Label name="errinfo" text="" height="60" width="250" float="true" pos="30,150,280,290" align="left" textcolor="#FFFF0000" visible="false"/>

+

+				<HorizontalLayout height="56" padding="30,16,30,20">

+					<Control></Control>

+					<Button name="cancel" text="取消" textcolor="#FF5F6368" maxheight="50" width="200" font="15" normalimage="file='btn_border_white.png' corner='5,5,5,5'" hotimage="file='btn_border_white_Hover.png' corner='5,5,5,5'" pushedimage="file='btn_border_white_Click.png' corner='5,5,5,5'"/>

+					<Control width="20"></Control>

+					<Button name="save" align="center" text="确认" textcolor="#FFFFFFFF" maxheight="50" width="200" font="15" normalimage="file='btn_green_zhengchang.png' corner='5,5,5,5'" hotimage="file='btn_green_xuanfu.png' corner='5,5,5,5'" pushedimage="file='btn_green_dianji.png' corner='5,5,5,5'" />

+					<Control></Control>

+				</HorizontalLayout>

+			</VerticalLayout>

+		</HorizontalLayout>

+		

+	</VerticalLayout>

 </Window>

BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_cash_h.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_cash_n.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_cash_p.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_fuli_h.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_fuli_n.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/pay_fuli_p.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/tag_pill_h.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/tag_pill_n.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/tag_pill_s.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/tag_pill_sp.png


BIN
bin/Win32/Release/zhipuzi_pos_windows/zhipuzi_pos_windows.exe


+ 47 - 32
zhipuzi_pos_windows/page/CDiandanPageUI.cpp

@@ -656,12 +656,15 @@ void CDiandanPageUI::InitJiesuanZhifu()
 			CButtonUI* newButton = new CButtonUI();
 
 			newButton->SetFixedWidth(120);
-			newButton->SetFixedHeight(80);
+			newButton->SetFixedHeight(54);
 			newButton->SetText(CLewaimaiString::UTF8ToUnicode(selfpay.name).c_str());
 
-			newButton->SetBorderSize(1);
-			newButton->SetBorderColor(0xFFC1C1C1);
-			newButton->SetBkColor(0xFFF7F7F7);
+			//与固定支付方式统一:白色圆角按钮(pay_more 三态图),文字深灰
+			newButton->SetAttribute(L"normalimage", L"file='pay_more_n.png' corner='8,8,8,8'");
+			newButton->SetAttribute(L"hotimage", L"file='pay_more_h.png' corner='8,8,8,8'");
+			newButton->SetAttribute(L"pushedimage", L"file='pay_more_p.png' corner='8,8,8,8'");
+			newButton->SetAttribute(L"textcolor", L"#FF5F6368");
+			newButton->SetAttribute(L"font", L"13");
 
 			//设置定义属性,在点击按钮的时候好区分
 			newButton->SetAttribute(L"name", L"diandan_jiesuan_zhifufangshi_zidingyi_btn");
@@ -690,13 +693,13 @@ void CDiandanPageUI::UpdateJiesuanZhifuPos()
 	int nZhangdanWidth;
 	if (m_is_yincangyouhui == true)
 	{
-		nZhangdanWidth = nWidth - 481 - 5;
+		nZhangdanWidth = nWidth - 481 - 5;				// 隐藏优惠后只剩账单卡,占满剩余宽度
 	}
 	else
 	{
-		nZhangdanWidth = nWidth - 481 - 331 - 5;
+		nZhangdanWidth = nWidth - 481 - 330 - 12 - 5;	// 优惠卡330 + 卡间距12 + 余量5
 	}
-	
+
 	if (nZhangdanWidth < 300)
 	{
 		nZhangdanWidth = 300;
@@ -724,8 +727,8 @@ void CDiandanPageUI::UpdateJiesuanZhifuPos()
 		RECT rect;
 		rect.left = (curCol - 1) * 140 + 20;
 		rect.right = rect.left + 120;
-		rect.top = (curRow - 1) * 100 + 20;
-		rect.bottom = rect.top + 80;
+		rect.top = (curRow - 1) * 74 + 20;
+		rect.bottom = rect.top + 54;
 
 		// 强制设置固定大小和位置
 		SIZE size;
@@ -741,7 +744,7 @@ void CDiandanPageUI::UpdateJiesuanZhifuPos()
 
 	//调整区域高度
 	int lastRow = (num - 1) / nMeihangNum + 1;
-	pZhifufangshiLayout->SetFixedHeight(lastRow * 105);
+	pZhifufangshiLayout->SetFixedHeight(lastRow * 74 + 20);
 }
 
 //展示结算页面,隐藏选购页面
@@ -1433,11 +1436,11 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 	//再判断整单折扣
 	CEditUI* pZhekouEdit = static_cast<CEditUI*>(this->FindSubControl(_T("diandan_jiesuan_zhekou_value")));
 	std::wstring ws_zhekou = pZhekouEdit->GetText();
-	int zhekouValue = atoi(CLewaimaiString::UnicodeToUTF8(ws_zhekou).c_str());
+	double zhekouValue = atof(CLewaimaiString::UnicodeToUTF8(ws_zhekou).c_str());
 
 	m_zhekou_value = zhekouValue;
 
-	if (zhekouValue == 100)
+	if (zhekouValue >= 100.0)
 	{
 		m_zhekou_youhui = 0;
 	}
@@ -1709,7 +1712,7 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"商品原价:");
-		pValue->SetText((CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(jichu_price, 2)) + L"元").c_str());
+		pValue->SetText((CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(jichu_price, 2)) + L" 元").c_str());
 
 		item_num++;
 	}
@@ -1726,7 +1729,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"商品券优惠:");
-		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_shangpinquan_youhui, 2)) + L"元").c_str());
+		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_shangpinquan_youhui, 2)) + L" 元").c_str());
+		pValue->SetTextColor(0xFFE14B4A);
 
 		item_num++;
 	}
@@ -1742,7 +1746,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"次卡优惠:");
-		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_cika_youhui, 2)) + L"元").c_str());
+		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_cika_youhui, 2)) + L" 元").c_str());
+		pValue->SetTextColor(0xFFE14B4A);
 
 		item_num++;
 	}
@@ -1758,7 +1763,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"商品会员价优惠:");
-		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_total_member_youhui, 2)) + L"元").c_str());
+		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_total_member_youhui, 2)) + L" 元").c_str());
+		pValue->SetTextColor(0xFFE14B4A);
 
 		item_num++;
 	}
@@ -1774,7 +1780,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"整单折扣优惠:");
-		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_zhekou_youhui, 2)) + L"元").c_str());
+		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_zhekou_youhui, 2)) + L" 元").c_str());
+		pValue->SetTextColor(0xFFE14B4A);
 
 		item_num++;
 	}
@@ -1790,7 +1797,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"会员整单折扣优惠:");
-		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_member_zhekou_youhui, 2)) + L"元").c_str());
+		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_member_zhekou_youhui, 2)) + L" 元").c_str());
+		pValue->SetTextColor(0xFFE14B4A);
 
 		item_num++;
 	}
@@ -1806,7 +1814,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"权益卡优惠:");
-		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_quanyika_youhui, 2)) + L"元").c_str());
+		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_quanyika_youhui, 2)) + L" 元").c_str());
+		pValue->SetTextColor(0xFFE14B4A);
 
 		item_num++;
 	}
@@ -1822,7 +1831,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"满减优惠:");
-		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_manjian_youhui, 2)) + L"元").c_str());
+		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_manjian_youhui, 2)) + L" 元").c_str());
+		pValue->SetTextColor(0xFFE14B4A);
 
 		item_num++;
 	}
@@ -1838,7 +1848,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"优惠券优惠:");
-		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_youhuiquan_youhui, 2)) + L"元").c_str());
+		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_youhuiquan_youhui, 2)) + L" 元").c_str());
+		pValue->SetTextColor(0xFFE14B4A);
 
 		item_num++;
 	}
@@ -1854,7 +1865,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"人工优惠:");
-		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_rengong_youhui, 2)) + L"元").c_str());
+		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_rengong_youhui, 2)) + L" 元").c_str());
+		pValue->SetTextColor(0xFFE14B4A);
 
 		item_num++;
 	}
@@ -1870,7 +1882,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"抹零优惠:");
-		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_moling_youhui, 2)) + L"元").c_str());
+		pValue->SetText((L"-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_moling_youhui, 2)) + L" 元").c_str());
+		pValue->SetTextColor(0xFFE14B4A);
 
 		item_num++;
 	}
@@ -1887,7 +1900,7 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"打包费:");
-		pValue->SetText((L"+" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_dabao, 2)) + L"元").c_str());
+		pValue->SetText((L"+" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_dabao, 2)) + L" 元").c_str());
 
 		item_num++;
 	}
@@ -1903,15 +1916,15 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		CLabelUI* pValue = static_cast<CLabelUI*>(pItem->FindSubControl(_T("value")));
 
 		pName->SetText(L"人工加价:");
-		pValue->SetText((L"+" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_jiajia, 2)) + L"元").c_str());
+		pValue->SetText((L"+" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(m_jiajia, 2)) + L" 元").c_str());
 
 		item_num++;
 	}
 
-	pmingxiLayout->SetFixedHeight(item_num * 40);
+	pmingxiLayout->SetFixedHeight(item_num * 32);
 
 	CLabelUI* pYingshou = static_cast<CLabelUI*>(this->FindSubControl(_T("diandan_jiesuan_total_yingshou")));
-	pYingshou->SetText((L"应收金额:" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(cur_price, 2)) + L"元").c_str());
+	pYingshou->SetText((L"应收金额:<f 117><c #3CB371>" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString(cur_price, 2)) + L" 元</c>").c_str());
 
 	//同步更新副屏的显示内容
 	CShuangpingTool::GetInstance()->UpdateShow(m_cur_diandan_order, total_youhui, cur_price, m_dabao);
@@ -2326,7 +2339,7 @@ void CDiandanPageUI::ClickDabao()
 
 void CDiandanPageUI::ClickQingkong()
 {
-	m_cur_diandan_order.Clear();
+	m_cur_diandan_order.RefreshDiandanInfo();
 
 	//清空后重新隐藏整单备注
 	CControlUI* pBeizhuLayout = this->FindSubControl(_T("diandan_page_zhengdanbeizhu_layout"));
@@ -2446,6 +2459,9 @@ void CDiandanPageUI::ClickZhengdanMemo()
 
 		pMemoDlg->SetTitle(L"整单备注");
 
+		//把已有备注回显进去(含预设备注自动点亮)
+		pMemoDlg->SetContent(m_cur_diandan_order.GetMemo());
+
 		UINT ret = pMemoDlg->ShowModal();
 
 		if (ret == IDOK)
@@ -2727,8 +2743,9 @@ void CDiandanPageUI::ClickZhekou()
 		pNumDlg->CenterWindow();
 
 		pNumDlg->SetTitle(L"输入折扣值");
-		pNumDlg->SetAttention(L"请输入折扣值(1到100之间的整数)");
+		pNumDlg->SetAttention(L"请输入折扣值(1到100之间的数字,支持小数点)");
 		pNumDlg->SetRange(1, 100);
+		pNumDlg->SetAllowDecimal(true);
 
 		UINT ret = pNumDlg->ShowModal();
 
@@ -4084,7 +4101,7 @@ CDiandanOrder CDiandanPageUI::GetPrintOrderinfo(std::string take_food_code, std:
 	m_cur_diandan_order.m_shishou_value = m_shishou_value;
 	m_cur_diandan_order.m_zhaoling_value = m_zhaoling_value;
 
-	m_cur_diandan_order.m_zhekou_value = m_zhekou_value;
+	m_cur_diandan_order.m_zhekou_value = CLewaimaiString::DoubleToString(m_zhekou_value, 2);
 	
 	m_cur_diandan_order.m_dabao_money = CLewaimaiString::DoubleToString(m_cur_diandan_order.getDabaoMoney(), 2);
 	m_cur_diandan_order.m_total_price = CLewaimaiString::DoubleToString(m_cur_total_price, 2);
@@ -4187,7 +4204,6 @@ void CDiandanPageUI::YincangYouhui()
 	m_is_yincangyouhui = true;
 
 	this->FindSubControl(L"diandan_jiesuan_youhui_layout")->SetVisible(false);
-	this->FindSubControl(L"diandan_jiesuan_youhui_line")->SetVisible(false);
 
 	this->FindSubControl(L"diandan_jiesuan_yincangyouhui_btn")->SetVisible(false);
 	this->FindSubControl(L"diandan_jiesuan_xianshiyouhui_btn")->SetVisible(true);
@@ -4201,7 +4217,6 @@ void CDiandanPageUI::XianshiYouhui()
 	m_is_yincangyouhui = false;
 
 	this->FindSubControl(L"diandan_jiesuan_youhui_layout")->SetVisible(true);
-	this->FindSubControl(L"diandan_jiesuan_youhui_line")->SetVisible(true);
 	
 	this->FindSubControl(L"diandan_jiesuan_yincangyouhui_btn")->SetVisible(true);
 	this->FindSubControl(L"diandan_jiesuan_xianshiyouhui_btn")->SetVisible(false);

+ 1 - 1
zhipuzi_pos_windows/page/CDiandanPageUI.h

@@ -262,7 +262,7 @@ private:
 	double m_total_youhui;
 
 	//折扣
-	int m_zhekou_value;
+	double m_zhekou_value;
 	double m_zhekou_youhui;
 
 	//人工加价

+ 3 - 0
zhipuzi_pos_windows/page/CZhengcanDiandanPageUI.cpp

@@ -2563,6 +2563,9 @@ void CZhengcanDiandanPageUI::ClickZhengdanMemo()
 
 		pMemoDlg->SetTitle(L"整单备注");
 
+		//把已有备注回显进去(含预设备注自动点亮)
+		pMemoDlg->SetContent(m_cur_diandan_order.GetMemo());
+
 		UINT ret = pMemoDlg->ShowModal();
 
 		if (ret == IDOK)

BIN
zhipuzi_pos_windows/resource/skin.zip


+ 203 - 1
zhipuzi_pos_windows/wnd/CMemoWnd.cpp

@@ -1,6 +1,13 @@
 #include "pch.h"
 #include "CMemoWnd.h"
 
+//预设备注文案(24 条):0~3 辣度四档(互斥)、4~7 咸淡、8~15 忌口、16~23 出品与打包
+const wchar_t* CMemoWnd::PRESET_MEMO[CMemoWnd::PRESET_COUNT] = {
+	L"免辣", L"微辣", L"中辣", L"特辣", L"少盐", L"少油", L"少糖", L"少醋",
+	L"免香菜", L"免葱", L"免蒜", L"免姜", L"免花生", L"免芝麻", L"免辣油", L"免味精",
+	L"不要餐具", L"多带餐具", L"分开打包", L"需要加热", L"加急出餐", L"少放汤", L"多放汤", L"分开装"
+};
+
 LRESULT CMemoWnd::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 {
 	POINT pt;
@@ -144,6 +151,16 @@ void CMemoWnd::Notify(TNotifyUI& msg)
 		{
 			StartYanzheng();
 		}
+		else if (senderName == _T("cancel"))
+		{
+			Close(IDCANCEL);
+			return;
+		}
+		else if (senderName == _T("memo_preset_item"))
+		{
+			TogglePresetTag((int)msg.pSender->GetTag());
+			return;
+		}
 	}
 	else if (msg.sType == L"windowinit")
 	{
@@ -159,7 +176,153 @@ void CMemoWnd::Notify(TNotifyUI& msg)
 
 void CMemoWnd::Init()
 {
+	for (int i = 0; i < PRESET_COUNT; i++)
+	{
+		m_presetSelected[i] = false;
+	}
+
+	InitPresetTags();
+
+	UpdatePresetCount();
+}
+
+void CMemoWnd::InitPresetTags()
+{
+	CTileLayoutUI* pTile = static_cast<CTileLayoutUI*>(m_pm.FindControl(_T("memo_preset")));
+	if (pTile == NULL)
+	{
+		return;
+	}
+
+	for (int i = 0; i < PRESET_COUNT; i++)
+	{
+		CButtonUI* pBtn = new CButtonUI;
+
+		pBtn->SetName(_T("memo_preset_item"));
+		pBtn->SetText(PRESET_MEMO[i]);
+		pBtn->SetTag((UINT_PTR)i);
+		pBtn->SetFont(13);
+
+		pTile->Add(pBtn);
+
+		UpdatePresetTagStyle(i);
+	}
+}
+
+void CMemoWnd::TogglePresetTag(int nIndex)
+{
+	if (nIndex < 0 || nIndex >= PRESET_COUNT)
+	{
+		return;
+	}
+
+	m_presetSelected[nIndex] = !m_presetSelected[nIndex];
+
+	//辣度四档(免辣/微辣/中辣/特辣)互斥,避免出现「免辣、特辣」这种矛盾备注
+	if (m_presetSelected[nIndex] && nIndex < 4)
+	{
+		for (int i = 0; i < 4; i++)
+		{
+			if (i != nIndex && m_presetSelected[i])
+			{
+				m_presetSelected[i] = false;
+				UpdatePresetTagStyle(i);
+			}
+		}
+	}
+
+	UpdatePresetTagStyle(nIndex);
 
+	UpdatePresetCount();
+}
+
+void CMemoWnd::UpdatePresetTagStyle(int nIndex)
+{
+	if (nIndex < 0 || nIndex >= PRESET_COUNT)
+	{
+		return;
+	}
+
+	CTileLayoutUI* pTile = static_cast<CTileLayoutUI*>(m_pm.FindControl(_T("memo_preset")));
+	if (pTile == NULL)
+	{
+		return;
+	}
+
+	CButtonUI* pBtn = static_cast<CButtonUI*>(pTile->GetItemAt(nIndex));
+	if (pBtn == NULL)
+	{
+		return;
+	}
+
+	//三态必须都显式设:main.xml 的 <Default name="Button"> 会给所有 Button 套绿色三态图
+	if (m_presetSelected[nIndex])
+	{
+		pBtn->SetNormalImage(_T("file='tag_pill_s.png' corner='17,17,17,17'"));
+		pBtn->SetHotImage(_T("file='tag_pill_s.png' corner='17,17,17,17'"));
+		pBtn->SetPushedImage(_T("file='tag_pill_sp.png' corner='17,17,17,17'"));
+		pBtn->SetTextColor(0xFFFFFFFF);
+		pBtn->SetHotTextColor(0xFFFFFFFF);
+		pBtn->SetPushedTextColor(0xFFFFFFFF);
+		pBtn->SetFocusedTextColor(0xFFFFFFFF);
+	}
+	else
+	{
+		pBtn->SetNormalImage(_T("file='tag_pill_n.png' corner='17,17,17,17'"));
+		pBtn->SetHotImage(_T("file='tag_pill_h.png' corner='17,17,17,17'"));
+		pBtn->SetPushedImage(_T("file='tag_pill_h.png' corner='17,17,17,17'"));
+		pBtn->SetTextColor(0xFF1F2329);
+		pBtn->SetHotTextColor(0xFF1F2329);
+		pBtn->SetPushedTextColor(0xFF1F2329);
+		pBtn->SetFocusedTextColor(0xFF1F2329);
+	}
+
+	pBtn->NeedUpdate();
+}
+
+void CMemoWnd::UpdatePresetCount()
+{
+	int nCount = 0;
+	for (int i = 0; i < PRESET_COUNT; i++)
+	{
+		if (m_presetSelected[i])
+		{
+			nCount++;
+		}
+	}
+
+	CLabelUI* pLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("preset_count")));
+	if (pLabel != NULL)
+	{
+		//不用 swprintf_s(依赖 <cstdio>,本项目 pch 不保证引入),改 std::to_wstring 拼接
+		std::wstring strCount = L"已选 " + std::to_wstring(nCount) + L" 条";
+		pLabel->SetText(strCount.c_str());
+	}
+}
+
+void CMemoWnd::SetContent(std::string content)
+{
+	std::wstring wsAll = CLewaimaiString::UTF8ToUnicode(content);
+
+	//每次打开都是全新状态:快捷选择的选中态一律清空,不保留上次的选择
+	for (int i = 0; i < PRESET_COUNT; i++)
+	{
+		m_presetSelected[i] = false;
+	}
+
+	for (int i = 0; i < PRESET_COUNT; i++)
+	{
+		UpdatePresetTagStyle(i);
+	}
+
+	UpdatePresetCount();
+
+	//已有备注整体填回输入框,供店员继续补充或删改(不填会丢掉上次手动写的内容)
+	CEditUI* pEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+	if (pEdit != NULL)
+	{
+		pEdit->SetText(wsAll.c_str());
+	}
 }
 
 std::string CMemoWnd::getContent()
@@ -178,7 +341,46 @@ void CMemoWnd::StartYanzheng()
 	CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
 	std::wstring wsReason = pContent->GetText();
 
-	m_content = CLewaimaiString::UnicodeToUTF8(wsReason);
+	//去掉首尾空白,避免只输入空格时拼出多余的「、」
+	size_t nBeg = wsReason.find_first_not_of(L" \t\r\n");
+	if (nBeg == std::wstring::npos)
+	{
+		wsReason.clear();
+	}
+	else
+	{
+		size_t nEnd = wsReason.find_last_not_of(L" \t\r\n");
+		wsReason = wsReason.substr(nBeg, nEnd - nBeg + 1);
+	}
+
+	//快捷选择在前,手动补充在后,用「、」连接
+	std::wstring wsAll;
+	for (int i = 0; i < PRESET_COUNT; i++)
+	{
+		if (!m_presetSelected[i])
+		{
+			continue;
+		}
+
+		if (!wsAll.empty())
+		{
+			wsAll += L'、';
+		}
+
+		wsAll += PRESET_MEMO[i];
+	}
+
+	if (!wsReason.empty())
+	{
+		if (!wsAll.empty())
+		{
+			wsAll += L'、';
+		}
+
+		wsAll += wsReason;
+	}
+
+	m_content = CLewaimaiString::UnicodeToUTF8(wsAll);
 
 	Close(IDOK);
 }

+ 20 - 0
zhipuzi_pos_windows/wnd/CMemoWnd.h

@@ -31,6 +31,23 @@ public:
 
 	void SetTitle(std::wstring title);
 
+	//打开弹窗前把已有备注填回输入框;快捷选择的选中态一律清空,不保留上次选择
+	void SetContent(std::string content);
+
+	//预设备注快捷选择(方案 C:24 条药丸,6 列 x 4 行)
+	void InitPresetTags();
+
+	void TogglePresetTag(int nIndex);
+
+	void UpdatePresetTagStyle(int nIndex);
+
+	void UpdatePresetCount();
+
+	//预设备注条数(0~3 是辣度四档,互斥)
+	static const int PRESET_COUNT = 24;
+
+	static const wchar_t* PRESET_MEMO[PRESET_COUNT];
+
 	void Notify(TNotifyUI& msg);
 
 	LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
@@ -76,5 +93,8 @@ public:
 	std::string m_content;
 
 	std::wstring m_errorInfo;
+
+	//每条预设备注是否选中
+	bool m_presetSelected[PRESET_COUNT];
 };
 

+ 28 - 4
zhipuzi_pos_windows/wnd/CNumInputWnd.cpp

@@ -278,9 +278,12 @@ void CNumInputWnd::Notify(TNotifyUI& msg)
 			for (size_t nIndex = 0; nIndex < strValue.length(); nIndex++)
 			{
 				unsigned char tmp = strValue.at(nIndex);
-				if (tmp > 57 || tmp < 48)
+				bool bIsDigit = (tmp <= 57 && tmp >= 48);
+				bool bIsDot = (tmp == 46);
+
+				if (!bIsDigit && !(bIsDot && m_allow_decimal))
 				{
-					//ASCII码不是数字的都过滤掉
+					//不是数字、且当前不允许小数点的,全部过滤掉
 					strValue = strValue.substr(0, nIndex);
 
 					m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
@@ -288,6 +291,21 @@ void CNumInputWnd::Notify(TNotifyUI& msg)
 
 					break;
 				}
+
+				if (bIsDot && m_allow_decimal)
+				{
+					//最多只允许出现一个小数点
+					size_t nFirstDot = strValue.find('.');
+					if (nFirstDot != std::string::npos && nFirstDot != nIndex)
+					{
+						strValue = strValue.substr(0, nIndex);
+
+						m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
+						m_pEdit->SetSel(strValue.length(), strValue.length());
+
+						break;
+					}
+				}
 			}
 		}
 	}
@@ -331,11 +349,12 @@ void CNumInputWnd::SaveNum()
 
 	m_content = CLewaimaiString::UnicodeToUTF8(wsReason);
 
-	int zhekou = atoi(m_content.c_str());
+	double zhekou = atof(m_content.c_str());
 	if (zhekou > m_max_int || zhekou < m_min_int)
 	{
 		CLabelUI* pErrorInfo = static_cast<CLabelUI*>(m_pm.FindControl(_T("errinfo")));
-		pErrorInfo->SetText((L"请输入" + std::to_wstring(m_min_int) + L"到" + std::to_wstring(m_max_int) + L"之间的整数").c_str());
+		std::wstring wsUnit = m_allow_decimal ? L"数字" : L"整数";
+		pErrorInfo->SetText((L"请输入" + std::to_wstring(m_min_int) + L"到" + std::to_wstring(m_max_int) + L"之间的" + wsUnit).c_str());
 		pErrorInfo->SetVisible(true);
 
 		return;
@@ -344,6 +363,11 @@ void CNumInputWnd::SaveNum()
 	Close(IDOK);
 }
 
+void CNumInputWnd::SetAllowDecimal(bool allow)
+{
+	m_allow_decimal = allow;
+}
+
 std::string CNumInputWnd::GetNum()
 {
 	return m_content;

+ 6 - 0
zhipuzi_pos_windows/wnd/CNumInputWnd.h

@@ -72,6 +72,9 @@ public:
 	//设置允许输入的最大值和最小值
 	void SetRange(int min_int, int max_int);
 
+	//是否允许输入小数点(整单折扣 95.5 这类场景需要),默认不允许
+	void SetAllowDecimal(bool allow);
+
 	void SaveNum();
 
 	std::string GetNum();
@@ -92,6 +95,9 @@ public:
 	int m_min_int;
 	int m_max_int;
 
+	//是否允许输入小数点,默认不允许(保持原有纯整数行为)
+	bool m_allow_decimal = false;
+
 	//数字类型 1:只能为整数 2:可以为小数
 	int m_num_type = 1;
 };