diff --git a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
index 363ff7f..e7a96e8 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
@@ -388,6 +388,7 @@
         AuxScreenController.getInstance().refreshContent(Arrays.asList(" 欢迎光临!", " 请刷卡..."))
 
         periodFixPayEnable = false
+        dialogPurchase?.dismiss()
         pos.getControlPara(PublicDef.CONTROL_FIXAMT)?.also { mode ->
             when {
                 mode.paraval == PayMode.HOTKEY.desc -> {
diff --git a/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt b/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt
index b9be1e9..7ce5604 100644
--- a/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt
@@ -59,8 +59,15 @@
         vPayamt = findViewById<TextView>(R.id.tv_consume_mode_payamt)
         llSpecialList = findViewById<LinearLayout>(R.id.ll_special_list)
         this.findViewById<TextView>(R.id.tv_hot_add).setOnClickListener {
+            if (!shoppwdPass) {
+                return@setOnClickListener
+            }
             if (llSpecialList.childCount >= MAX_CHILD_COUNT) {
-                SWToast.show(applicationContext, "最大支持${MAX_CHILD_COUNT}条规则", PublicDef.TOAST_SHOW_DOUBT)
+                SWToast.show(
+                    applicationContext,
+                    "最大支持${MAX_CHILD_COUNT}条规则",
+                    PublicDef.TOAST_SHOW_DOUBT
+                )
                 return@setOnClickListener
             }
             if (configMode == ConfigMode.PERIOD_FIX) {
@@ -70,6 +77,9 @@
             }
         }
         this.findViewById<TextView>(R.id.tv_save).setOnClickListener {
+            if (!shoppwdPass) {
+                return@setOnClickListener
+            }
             when (configMode) {
                 ConfigMode.PERIOD_FIX -> {
                     if (llSpecialList.childCount == 0) {
@@ -105,6 +115,9 @@
         }
         this.findViewById<RadioGroup>(R.id.rg_special_mode)
             .setOnCheckedChangeListener { _, checkedId ->
+                if (!shoppwdPass) {
+                    return@setOnCheckedChangeListener
+                }
                 when (checkedId) {
                     R.id.rb_normal -> showCurrentMode(ConfigMode.NORMAL)
                     R.id.rb_normal_fix -> showCurrentMode(ConfigMode.NORMAL_FIX)
