From fab8c02a0aa8f941a507bdcb3e4d72deb6eb2242 Mon Sep 17 00:00:00 2001
From: weimingfei <fei_gaming@sina.com>
Date: 星期五, 24 十月 2025 14:53:18 +0800
Subject: [PATCH] 钥匙柜

---
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java       |   59 ++++++
 keyCabinet-android/app/src/main/res/layout/home_fragment_lbt_item.xml                               |    6 
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/CabinetDetailBean.java              |    9 +
 keyCabinet-android/app/src/main/res/layout/main_activity.xml                                        |   17 +
 keyCabinet-android/app/src/main/res/layout/key_cabinet_activity.xml                                 |    4 
 keyCabinet-android/app/src/main/res/layout/manage_cabinet_activity.xml                              |    3 
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java    |   40 ----
 keyCabinet-android/app/src/main/res/layout/face_activity.xml                                        |    2 
 keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml                                |    4 
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java                      |    4 
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java |  146 ++++++++++++++---
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java                           |    2 
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceActivity.java                |   15 +
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/dao/CabinetGridDao.java                  |    2 
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetVM.java          |    5 
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/DevConfigBean.java                  |   10 +
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java         |    5 
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java                |   95 +++++------
 keyCabinet-android/app/src/main/res/values/styles.xml                                               |    3 
 19 files changed, 285 insertions(+), 146 deletions(-)

diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/CabinetDetailBean.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/CabinetDetailBean.java
index 52187a7..e0ae06a 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/CabinetDetailBean.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/CabinetDetailBean.java
@@ -6,6 +6,8 @@
 import lombok.Data;
 
 public class CabinetDetailBean implements Serializable {
+    //绠$悊鍛榠d
+    private Integer memberId;
     //璁惧缂栧彿
     private String code;
     //璁惧ID
@@ -30,6 +32,13 @@
     //鏌滄牸淇℃伅
     private List<ManageKeyCabinetBean> cabinetGridInfoVOList;
 
+    public Integer getMemberId() {
+        return memberId;
+    }
+
+    public void setMemberId(Integer memberId) {
+        this.memberId = memberId;
+    }
 
     public String getCode() {
         return code;
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/DevConfigBean.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/DevConfigBean.java
index 84039a2..db00eab 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/DevConfigBean.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/DevConfigBean.java
@@ -8,6 +8,8 @@
     private List<String> bannerList;
     //璁惧缂栧彿
     private String code;
+    //绠$悊鑱旂郴鐢佃瘽
+    private String linkPhone;
     //璁惧ID
     private String devId;
     //鏄惁鍙岄噸楠岃瘉 0鍚� 1鏄�
@@ -86,6 +88,14 @@
         this.cabinetGridInfoVOList = cabinetGridInfoVOList;
     }
 
+    public String getLinkPhone() {
+        return linkPhone;
+    }
+
+    public void setLinkPhone(String linkPhone) {
+        this.linkPhone = linkPhone;
+    }
+
     public CabinetConfigDataBean getCabinetConfigDataVO() {
         return cabinetConfigDataVO;
     }
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/dao/CabinetGridDao.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/dao/CabinetGridDao.java
index 26adf80..8d3870d 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/dao/CabinetGridDao.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/dao/CabinetGridDao.java
@@ -69,7 +69,7 @@
     List<CabinetGridDo> getGridByOpenStatus(int isOpen);
 
     @Transaction
-    @Query("SELECT * FROM cabinet_grid WHERE is_open = 1 and working_status = 0 and grid_status = 0 order by grid_key asc")
+    @Query("SELECT * FROM cabinet_grid WHERE is_open = 1 and working_status = 0 and grid_status = 0  and key_status !=3 order by grid_key asc")
     List<CabinetGridDo> getOpenGrids();
 
     @Transaction
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java
index e6967f9..b2cf275 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java
@@ -87,7 +87,7 @@
     Observable<BaseResponse> timeOutUnCloseAlarm(@Body RequestBody requestBody);
 
     /**
-     * 鍏抽棴鏌滄牸 - 鍙告満
+     * 鍏抽棴鏌滄牸
      */
     @POST("visitsAdmin/cloudService/web/cabinet/closeGrid")
     Observable<BaseResponse> closeGrid(@Body RequestBody requestBody);
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceActivity.java
index 2390109..302f2ad 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceActivity.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceActivity.java
@@ -9,8 +9,12 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.text.SpannableString;
+import android.text.Spanned;
 import android.text.TextUtils;
+import android.text.style.TextAppearanceSpan;
 import android.view.View;
+import android.widget.TextView;
 
 import com.baidu.idl.main.facesdk.model.BDFaceSDKCommon;
 import com.doumee.keyCabinet.MApplication;
@@ -84,6 +88,15 @@
     @Override
     protected void timeChange(String djs) {
         getDB().tvDjs.setText(djs);
+    }
+
+    private SpannableString getErrPhoneText(){
+        String phone = MApplication.getConfigBean().getLinkPhone();
+        String text = "濡傛湁闂璇疯仈绯荤鐞嗗憳"+phone;
+        SpannableString styledText = new SpannableString(text);
+        styledText.setSpan(new TextAppearanceSpan(this, R.style.style_tip3), 0, text.length()-phone.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+        styledText.setSpan(new TextAppearanceSpan(this,R.style.style_tip1), text.length()-phone.length()+1, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+        return styledText;
     }
 
     private void statusFsm(int toStatus){
@@ -273,7 +286,7 @@
                 SingleBaseConfig.getBaseConfig().getMirrorVideoRGB() , SingleBaseConfig.getBaseConfig().isOpenGl());
         CameraPreviewManager.getInstance().startPreview(glMantleSurfacView,
                 SingleBaseConfig.getBaseConfig().getRgbVideoDirection() , PREFER_WIDTH, PERFER_HEIGH);
-
+        getDB().tvJg2.setText(getErrPhoneText(), TextView.BufferType.SPANNABLE);
     }
 
     @Override
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java
index 44934c8..f062a3f 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java
@@ -55,32 +55,6 @@
     private int status;
 
     private int ysDownCount = 10;
-    private Handler handler = new Handler(){
-        @Override
-        public void handleMessage(@NonNull Message msg) {
-            switch (msg.what){
-                case 0:
-                    /*if (ysDownCount==4) {
-                        //棰嗗彇閽ュ寵鍊掕鏃�
-                        doRegister(7,null);
-                        ysDownCount--;
-                        handler.sendEmptyMessageDelayed(0,1000);
-                    }else if (ysDownCount==0) {
-                        //棰嗗彇閽ュ寵鍊掕鏃�
-                        //doRegister(MApplication.nextBoolean()?5:6,null);
-                    }else {
-                        ysDownCount--;
-                        handler.sendEmptyMessageDelayed(0,1000);
-                    }*/
-                    break;
-                case 1:
-
-                    break;
-                default:
-                    break;
-            }
-        }
-    };
 
     @Override
     public int getLayoutId() {
@@ -203,6 +177,7 @@
                 getDB().clTip1.setVisibility(View.GONE);
                 if(status==0) {
                     //閲嶆柊寮�闂�
+                    openTime = StringUtil.DateToStr(new Date());
                     EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                 }
                 downTime = 60;
@@ -234,7 +209,6 @@
                 getDB().clTip2.setVisibility(View.VISIBLE);
                 EventBus.getDefault().post(new GetKeyStatusEvent());
                 ysDownCount = 8;
-                handler.sendEmptyMessageDelayed(0,1000);
                 break;
             case 7:
                 //鎻愰啋鍏虫煖闂�
@@ -312,7 +286,7 @@
     }
 
     private SpannableString getErrPhoneText(){
-        String phone = "15899098765";
+        String phone = MApplication.getConfigBean().getLinkPhone();
         String text = "濡傛湁闂璇疯仈绯荤鐞嗗憳"+phone;
         SpannableString styledText = new SpannableString(text);
         styledText.setSpan(new TextAppearanceSpan(this, R.style.style_tip2), 0, text.length()-phone.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
@@ -340,13 +314,13 @@
                 if (gridDo != null) {
                     if(flag==0){
                         //鍙�
-                        if(TextUtils.isEmpty(gridDo.getKeyCode())){
+                        if(TextUtils.isEmpty(gridDo.getCurKeyCode())){
                             //绌轰簡
                             doRegister(7,null);
                         }
                     }else {
                         //杩�
-                        if(!TextUtils.isEmpty(gridDo.getKeyCode())){
+                        if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
                             //鏈夐挜鍖欎簡
                             doRegister(7,null);
                         }
@@ -359,8 +333,6 @@
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        handler.removeCallbacksAndMessages(null);
-        handler = null;
     }
 
     private String openTime = "";
@@ -377,7 +349,6 @@
                             return;
                         }
                         isOpened = true;
-                        openTime = StringUtil.DateToStr(new Date());
                         Toast.makeText(mContext, "鎿嶄綔4", Toast.LENGTH_LONG).show();
                         doRegister(4, null);
                     } else {
@@ -443,9 +414,6 @@
                                     isOpened = false;
                                     doRegister(5, null);
                                     getVM().closeGrid(gridDo);
-                                }
-                                if (handler.hasMessages(0)) {
-                                    handler.removeMessages(0);
                                 }
                             }else {
                                 Toast.makeText(mContext, "鏈煡璇㈠埌", Toast.LENGTH_LONG).show();
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetVM.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetVM.java
index 61cdd3a..3db3550 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetVM.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetVM.java
@@ -12,6 +12,7 @@
 import com.doumee.keyCabinet.bean.KeyCabinetBean;
 import com.doumee.keyCabinet.bean.LoginBean;
 import com.doumee.keyCabinet.dao.CabinetGridDo;
+import com.doumee.keyCabinet.event.HttpEvent;
 import com.doumee.keyCabinet.http.Apis;
 import com.doumee.keyCabinet.http.param.BaseResponse;
 import com.doumee.keyCabinet.http.param.CloseGridParam;
@@ -109,6 +110,7 @@
                     public void onNext(@NonNull BaseResponse response) {
                         if(200==response.getCode()){
                             //寮�闂�
+                            toast("寮�闂ㄦ帴鍙f垚鍔�");
                             doAction(2);
                         }else {
                             toast(response.getMessage());
@@ -144,7 +146,8 @@
                 .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) {
                     @Override
                     public void onNext(@NonNull BaseResponse response) {
-
+                        EventBus.getDefault().post(new HttpEvent("鍏抽棴鏌滄牸鎺ュ彛璋冪敤鎴愬姛"));
+                        toast("鍏抽棴鏌滄牸:"+response.getMessage());
                     }
 
                     @Override
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
index ef9eb5a..f982e43 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
@@ -20,9 +20,11 @@
 import com.doumee.keyCabinet.dao.CabinetGridDo;
 import com.doumee.keyCabinet.dao.DaoManager;
 import com.doumee.keyCabinet.databinding.ManageCabinetActivityBinding;
+import com.doumee.keyCabinet.event.CloseGridOneResultEvent;
 import com.doumee.keyCabinet.event.HttpEvent;
 import com.doumee.keyCabinet.event.ManageOpenGridResultEvent;
 import com.doumee.keyCabinet.event.OpenAllGridEvent;
+import com.doumee.keyCabinet.event.OpenGridEvent;
 import com.doumee.keyCabinet.event.OpenGridListEvent;
 import com.doumee.keyCabinet.event.TimeClockEvent;
 import com.doumee.keyCabinet.ui.keyCabinet.adapter.ManageCabinetRcvAdapter;
@@ -45,9 +47,12 @@
 @AndroidEntryPoint
 public class ManageCabinetActivity extends MyBaseActivity<ManageCabinetVM, ManageCabinetActivityBinding> {
     private ManageCabinetRcvAdapter adapter;
-    //1寰呭叏寮�锛�2寰呮壒閲忓紑
-    private int status;
-    private boolean isCanCZ = false;
+
+    //鏄惁鍙壒閲忔搷浣�
+    private boolean isCanPL = false;
+    //鍙爣璁帮細鍏ㄥ�熷嚭銆佸叏鏁呴殰
+    private boolean isCanBJ = false;
+    private int keyStatus = -1;
 
     @Override
     public int getLayoutId() {
@@ -64,21 +69,7 @@
         adapter = new ManageCabinetRcvAdapter(this, R.layout.manage_cabinet_rcv_item, new ManageCabinetRcvAdapter.OnItemClick() {
             @Override
             public void onItemClick(ManageKeyCabinetBean item) {
-                List<ManageKeyCabinetBean> datas = adapter.getListData();
-                isCanCZ = false;
-                for(ManageKeyCabinetBean d:datas){
-                    if(d.getIsSelected().get()){
-                        isCanCZ = true;
-                        break;
-                    }
-                }
-                if(isCanCZ){
-                    getDB().tvPlOpen.setBackgroundResource(R.drawable.shape_mb_bt_ok);
-                    getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_ok);
-                }else {
-                    getDB().tvPlOpen.setBackgroundResource(R.drawable.shape_mb_bt_faile);
-                    getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_faile);
-                }
+                updateBtnStatus();
             }
         });
         RecyclerHelp.bindVG(this,getDB().rcvKm,3,30);
@@ -90,6 +81,9 @@
         getVM().getDatasLD().observe(this, new Observer<List<ManageKeyCabinetBean>>() {
             @Override
             public void onChanged(List<ManageKeyCabinetBean> gridInfoBeans) {
+                if(getDB().clCz.getVisibility()==View.VISIBLE){
+                    getDB().clCz.setVisibility(View.GONE);
+                }
                 if(gridInfoBeans.size()>0){
                     adapter.refreshData(gridInfoBeans);
                     getVM().emptyVisibility.set(View.GONE);
@@ -101,6 +95,45 @@
             }
         });
         getVM().getCabinetDetail();
+    }
+
+    private void updateBtnStatus(){
+        List<ManageKeyCabinetBean> datas = adapter.getListData();
+        isCanPL = false;
+        isCanBJ = false;
+        keyStatus = -1;
+        for(ManageKeyCabinetBean d:datas){
+            if(d.getIsSelected().get()){
+                isCanPL = true;
+                if(keyStatus==-1){
+                    keyStatus = getGridStatus(d);
+                }else {
+                    if(keyStatus!=getGridStatus(d)){
+                        //涓嶅悓
+                        keyStatus = -2;
+                    }
+                }
+            }
+        }
+        if(isCanPL){
+            getDB().tvPlOpen.setBackgroundResource(R.drawable.shape_mb_bt_ok);
+        }else {
+            getDB().tvPlOpen.setBackgroundResource(R.drawable.shape_mb_bt_faile);
+        }
+        if(keyStatus==2||keyStatus==4){
+            isCanBJ = true;
+            getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_ok);
+        }else {
+            getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_faile);
+        }
+    }
+
+    private int getGridStatus(ManageKeyCabinetBean grid){
+        if(grid.getWorkingStatus()==1){
+            return 4;
+        }else {
+            return grid.getKeyStatus();
+        }
     }
 
     private void updateDao(List<ManageKeyCabinetBean> beans){
@@ -153,7 +186,6 @@
     }
 
     private List<Integer> bjIds = new ArrayList<>();
-    private boolean isGz = true;
     private boolean isAllOpen = false;
     @Override
     protected void doRegister(int type, ActionEventData data) {
@@ -168,7 +200,6 @@
             case 2:
             {
                 //鍏ㄥ紑
-                status = 1;
                 //鎵归噺寮�闂紝鏍¢獙鏄惁鍙墦寮�
                 List<Integer> ids = new ArrayList<>();
                 List<ManageKeyCabinetBean> datas = adapter.getListData();
@@ -183,7 +214,7 @@
             }
                 break;
             case 3: {
-                if(!isCanCZ){
+                if(!isCanPL){
                     return;
                 }
                 //鎵归噺寮�闂紝鏍¢獙鏄惁鍙墦寮�
@@ -228,34 +259,33 @@
                 }break;
             case 4: {
                 //鏍囪
-                if(!isCanCZ){
+                if(!isCanPL){
                     return;
                 }
                 bjIds.clear();
-                isGz = true;
+
                 List<ManageKeyCabinetBean> datas = adapter.getListData();
                 for (ManageKeyCabinetBean bean : datas) {
                     if (bean.getIsSelected().get()) {
                         bjIds.add(bean.getId());
-                        if(bean.getWorkingStatus()==0){
-                            isGz = false;
-                        }
                     }
                 }
                 if (bjIds.size() == 0) {
                     Toast.makeText(mContext, "璇烽�夋嫨鏌滄牸", Toast.LENGTH_SHORT).show();
                     return;
                 }
-                if(isGz){
+                if(keyStatus==4){
                     //鍏ㄤ负鏁呴殰
                     getDB().tvBjgz.setText("鏍囪涓烘甯�");
                     getDB().tvBjgz.setTextColor(0xff279BAA);
                     getDB().tvBjgz.setBackgroundResource(R.drawable.shape_mb_cz_2_bg);
+                    getDB().tvBy.setVisibility(View.GONE);
                 }else {
                     //鏍囪鏁呴殰
                     getDB().tvBjgz.setText("鏍囪涓烘晠闅�");
                     getDB().tvBjgz.setTextColor(0xffFF3600);
                     getDB().tvBjgz.setBackgroundResource(R.drawable.shape_mb_cz_1_bg);
+                    getDB().tvBy.setVisibility(View.VISIBLE);
                 }
                 getDB().clCz.setVisibility(View.VISIBLE);
                 }break;
@@ -267,7 +297,7 @@
                 getVM().markRepair(bjIds);
                 break;
             case 7:
-                if(isGz) {
+                if(keyStatus==4) {
                     //姝e父
                     getVM().cancelFault(bjIds);
                 }else {
@@ -276,6 +306,7 @@
                 }
                 break;
             case 9: {
+                updateBtnStatus();
                 if(isShowOpenTip==true) {
                     //娓呯┖寮�闂ㄦ彁閱�
                     isShowOpenTip = false;
@@ -284,6 +315,9 @@
                     getDB().clKmTip.setVisibility(View.GONE);
                 }
                 }break;
+            case 11:
+                updateBtnStatus();
+                break;
             default:
                 break;
         }
@@ -370,6 +404,17 @@
         return styledText;
     }
 
+    private void showKeyErrTip(CabinetGridDo gridDo){
+        getDB().imgClKm1.setImageResource(R.mipmap.ic_jjfail);
+        getDB().tvClKm1.setText("璇嗗埆澶辫触");
+        getDB().tvClKm2.setText(getTipText2("閽ュ寵鏌�",gridDo.getCabinetName(),"璇嗗埆澶辫触"), TextView.BufferType.SPANNABLE);
+        getDB().tvClKmClose.setText("閲嶆柊瀛樻斁");
+        getDB().tvClKmClose.setTextColor(0xffffffff);
+        getDB().tvClKmClose.setBackgroundResource(R.drawable.shape_mb_bt_ok);
+        isShowOpenTip = false;
+        getDB().clKmTip.setVisibility(View.VISIBLE);
+    }
+
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if(keyCode == KeyEvent.KEYCODE_BACK){
@@ -380,6 +425,10 @@
         return super.onKeyDown(keyCode, event);
     }
 
+    /**
+     * 寮�闂ㄨ繑鍥�
+     * @param e
+     */
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void ManageOpenGridResultEvent(ManageOpenGridResultEvent e){
         if(!isFinishing()){
@@ -397,6 +446,10 @@
                 }
             }
             if(waitOpenMap.size()==0){
+                if(getDB().clKmTip.getVisibility()==View.VISIBLE){
+                    //宸插脊鍑哄氨涓嶆彁绀轰簡
+                    return;
+                }
                 EventBus.getDefault().post(new HttpEvent("鍏ㄩ儴鎵撳紑浜�:"+waitOpenMap.size()));
                 //鎵撳紑鎴愬姛
                 if(isAllOpen){
@@ -464,4 +517,41 @@
             waitOpenMap.clear();
         }
     }
+
+    /**
+     * 鍏抽棬
+     * @param e
+     */
+    @Subscribe(threadMode= ThreadMode.MAIN)
+    public void CloseGridOneResultEvent(CloseGridOneResultEvent e){
+        if(!isFinishing()){
+            //鏍¢獙鍗″彿
+            CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(e.getKey());
+            if(gridDo!=null){
+                //鏍¢獙閽ュ寵鏄惁鍖归厤
+                if(gridDo.getGridKey()==null){
+                    if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
+                        //鏈粦瀹氱殑瀛樻斁浜嗛挜鍖�
+                        showKeyErrTip(gridDo);
+                        //寮�闂�
+                        EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"",
+                                Integer.parseInt(e.getKey().substring(0,2), 16)+""));
+                        return;
+                    }
+                }else {
+                    if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
+                        if(!gridDo.getCurKeyCode().equals(gridDo.getKeyCode())){
+                            //閽ュ寵涓嶅尮閰�
+                            showKeyErrTip(gridDo);
+                            //寮�闂�
+                            EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"",
+                                    Integer.parseInt(e.getKey().substring(0,2), 16)+""));
+                            return;
+                        }
+                    }
+                }
+                getVM().closeGrid(gridDo);
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java
index c99ca2e..2a338f5 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java
@@ -1,6 +1,7 @@
 package com.doumee.keyCabinet.ui.keyCabinet;
 
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
 import androidx.databinding.ObservableField;
@@ -9,11 +10,15 @@
 
 import com.doumee.keyCabinet.MApplication;
 import com.doumee.keyCabinet.bean.CabinetDetailBean;
+import com.doumee.keyCabinet.bean.LoginBean;
 import com.doumee.keyCabinet.bean.ManageKeyCabinetBean;
+import com.doumee.keyCabinet.dao.CabinetGridDo;
+import com.doumee.keyCabinet.event.HttpEvent;
 import com.doumee.keyCabinet.http.Apis;
 import com.doumee.keyCabinet.http.param.BaseResponse;
 import com.doumee.keyCabinet.http.param.BatchOpenGridAdminParam;
 import com.doumee.keyCabinet.http.param.CancelFaultParam;
+import com.doumee.keyCabinet.http.param.CloseGridParam;
 import com.doumee.keyCabinet.http.param.MarkFaultParam;
 import com.doumee.keyCabinet.http.param.MarkRepairParam;
 import com.doumee.keyCabinet.utils.ParamsUtil;
@@ -21,6 +26,8 @@
 import com.doumee.lib_coremodel.base.DataViewModel;
 import com.doumee.lib_coremodel.http.rxJava.SimpleObserver;
 import com.doumee.lib_coremodel.http.utils.RxUtils;
+
+import org.greenrobot.eventbus.EventBus;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -40,7 +47,7 @@
     }
 
     public void getCabinetDetail(){
-        CabinetDetailBean bean = new CabinetDetailBean();
+        /*CabinetDetailBean bean = new CabinetDetailBean();
         bean.setGridNum(24);
         bean.setOnlineKeyNum(1);
         bean.setOutKeyNum(2);
@@ -95,11 +102,8 @@
         b4.setWorkingStatus(1);
         b4.setBindStatus(1);
 
-        datasLD.setValue(datas);
+        datasLD.setValue(datas);*/
 
-        if(true){
-            return;
-        }
         showLoading(true);
         getRetrofitService(Apis.class).getCabinetDetail(MApplication.getLoginBean().getToken(),
                         MApplication.getConfigBean().getId())
@@ -110,6 +114,7 @@
                         if(200==response.getCode()){
                             dataOb.set(response.getData());
                             if(response.getData()!=null){
+                                MApplication.getLoginBean().setMemberId(response.getData().getMemberId());
                                 if(response.getData().getCabinetGridInfoVOList()!=null){
                                     datasLD.setValue(response.getData().getCabinetGridInfoVOList());
                                 }else {
@@ -136,14 +141,14 @@
     }
 
     public void batchOpenGridAdmin(List<Integer> gridIdList,boolean isAll){
-        if(isAll) {
+        /*if(isAll) {
             doAction(8);
         }else {
             doAction(10);
         }
         if(true){
             return;
-        }
+        }*/
         showLoading(true);
         BatchOpenGridAdminParam param = new BatchOpenGridAdminParam();
         param.setCabinetId(MApplication.getConfigBean().getId());
@@ -156,6 +161,7 @@
                     public void onNext(@NonNull BaseResponse response) {
                         if(200==response.getCode()){
                             if(isAll) {
+                                toast("鎵归噺寮�闂ㄦ垚鍔�");
                                 doAction(8);
                             }else {
                                 doAction(10);
@@ -190,6 +196,7 @@
                     @Override
                     public void onNext(@NonNull BaseResponse response) {
                         if(200==response.getCode()){
+                            toast("鏍囪鏌滄牸姝e父鎴愬姛");
                             getCabinetDetail();
                         }else {
                             toast(response.getMessage());
@@ -220,6 +227,7 @@
                     @Override
                     public void onNext(@NonNull BaseResponse response) {
                         if(200==response.getCode()){
+                            toast("鏍囪鏌滄牸鏁呴殰鎴愬姛");
                             getCabinetDetail();
                         }else {
                             toast(response.getMessage());
@@ -250,6 +258,7 @@
                     @Override
                     public void onNext(@NonNull BaseResponse response) {
                         if(200==response.getCode()){
+                            toast("鏍囪缁翠慨淇濆吇鎴愬姛");
                             getCabinetDetail();
                         }else {
                             toast(response.getMessage());
@@ -268,6 +277,42 @@
                 });
     }
 
+    /**
+     * 鍏抽棬
+     * @param gridDo
+     */
+    public void closeGrid(CabinetGridDo gridDo){
+        CloseGridParam param = new CloseGridParam();
+        LoginBean loginBean = MApplication.getLoginBean();
+        param.setCabinetId(MApplication.getConfigBean().getId());
+        param.setAuthType(loginBean.getAuthType());
+        param.setMemberId(loginBean.getMemberId());
+        param.setGridId(gridDo.getGridId());
+        param.setKeyStatus(!TextUtils.isEmpty(gridDo.getCurKeyCode())?1:2);
+        toast(gridDo.getGridKey()+"鍏抽棴锛屽綋鍓嶉挜鍖欏彿锛�"+gridDo.getCurKeyCode());
+        getRetrofitService(Apis.class).closeGrid(ParamsUtil.encodeRequestBody(param))
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) {
+                    @Override
+                    public void onNext(@NonNull BaseResponse response) {
+                        if(response.getCode()==200){
+                            getCabinetDetail();
+                            doAction(11);
+                        }
+                    }
+
+                    @Override
+                    public void onError(@NonNull Throwable e) {
+
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
     public MutableLiveData<List<ManageKeyCabinetBean>> getDatasLD() {
         return datasLD;
     }
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java
index 89e58c7..fa2587c 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java
@@ -29,10 +29,6 @@
     }
 
     public void loginCabinet(String userName,String pw){
-        if(true){
-            doAction(5);
-            return;
-        }
         LoginCabinetParam param = new LoginCabinetParam();
         param.setUsername(userName);
         param.setPassword(pw);
@@ -45,6 +41,7 @@
                         if(200==response.getCode()){
                             MApplication.setLoginBean(null);
                             MApplication.getLoginBean().setToken(response.getData());
+                            MApplication.getLoginBean().setAuthType(2);
                             doAction(5);
                         }else {
                             doAction(4);
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
index c248eb2..1b06374 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
@@ -39,11 +39,9 @@
 import com.bumptech.glide.request.target.Target;
 import com.bumptech.glide.request.transition.Transition;
 import com.doumee.keyCabinet.BuildConfig;
-import com.doumee.keyCabinet.base.BannerPicResponsePara;
 import com.doumee.keyCabinet.bean.CabinetConfigDataBean;
 import com.doumee.keyCabinet.bean.DevConfigBean;
 import com.doumee.keyCabinet.bean.FaceUserBean;
-import com.doumee.keyCabinet.bean.LoginBean;
 import com.doumee.keyCabinet.dao.CabinetGridDo;
 import com.doumee.keyCabinet.dao.DaoManager;
 import com.doumee.keyCabinet.databinding.MainActivityBinding;
@@ -60,9 +58,9 @@
 import com.doumee.keyCabinet.event.OpenGridEvent;
 import com.doumee.keyCabinet.event.OpenGridListEvent;
 import com.doumee.keyCabinet.event.OpenGridOneResultEvent;
-import com.doumee.keyCabinet.event.ReLoginEvent;
 import com.doumee.keyCabinet.event.TimeClockEvent;
 import com.doumee.keyCabinet.ui.face.ActivationActivity;
+import com.doumee.keyCabinet.ui.face.FaceActivity;
 import com.doumee.keyCabinet.ui.keyCabinet.ChangeUrlActivity;
 import com.doumee.keyCabinet.ui.keyCabinet.KeyCabinetActivity;
 import com.doumee.keyCabinet.ui.keyCabinet.ManageLoginActivity;
@@ -273,6 +271,7 @@
         getDB().tvId.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                startActivity(ManageLoginActivity.class);
                 //鏇存敼url
                 if(lastDownTime2!=null){
                     if(System.currentTimeMillis()-lastDownTime2>1000){
@@ -286,6 +285,13 @@
                     lastDownTime2=null;
                     startActivity(ChangeUrlActivity.class);
                 }
+            }
+        });
+        getDB().tvVersion.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //todo 涓存椂浠g爜
+                setJiuConfig();
             }
         });
         upErrInfo();
@@ -305,6 +311,8 @@
     }
 
     private void setJiuConfig(){
+        getVM().addInfo("閰掔簿閰嶇疆锛�"+(MApplication.getConfigBean().getCabinetConfigDataVO()!=null)+
+                ",涓插彛寮�鍚細"+(jiuPort!=null));
         if(MApplication.getConfigBean().getCabinetConfigDataVO()!=null&&
             jiuPort!=null){
             setJiuConfig(0);
@@ -355,49 +363,19 @@
             case 2:
             case 3: {
                 //鏍¢獙鏄惁鐧诲綍
-                /*if(MApplication.getConfigBean().getId()==null){
+                if(MApplication.getConfigBean().getId()==null){
                     Toast.makeText(mContext, "璁惧鏈坊鍔狅紝鏃犳硶鎿嶄綔", Toast.LENGTH_SHORT).show();
                     getVM().devLogin();
                     return;
                 }
-                MApplication.getLoginBean().setFlag(type==2?0:1);
-                startActivity(FaceActivity.class);*/
-                /*if(type==2){
-                    send485(1,"A002010000000003");
-                }else {
-                    send485(1,"A001010000000002");
-                }*/
-                //send485(1,"A001010000000002");
-                //send485(1,"A002010000000003");
-                //startActivity(KeyCabinetActivity.class,b);
                 checkGridStatus(0);
                 List<CabinetGridDo> gridDos = getVM().getOpenGrids();
                 if (gridDos.size() > 0) {
-                    tipDownCount = 10;
-                    isShowTip = true;
-                    getDB().tvDjs.setText(tipDownCount + "s");
-                    StringBuilder sb = new StringBuilder();
-                    for(CabinetGridDo d:gridDos){
-                        if (sb.length()>0) {
-                            sb.append("銆�");
-                        }
-                        String name = d.getCabinetName();
-                        if (TextUtils.isEmpty(name)) {
-                            name = gridDos.get(0).getGridKey();
-                        }
-                        sb.append(name);
-                    }
-
-                    getDB().tvTip22.setText(getTipText(sb.toString()), TextView.BufferType.SPANNABLE);
-                    getDB().clTip.setVisibility(View.VISIBLE);
+                    showUnCloseTip(gridDos);
                     return;
                 }
                 MApplication.setLoginBean(null);
                 MApplication.getLoginBean().setFlag(type == 2 ? 0 : 1);
-                if(type==3){
-                    startActivity(ManageLoginActivity.class);
-                    return;
-                }
                 startActivity(KeyCabinetActivity.class);
                 }
                 break;
@@ -408,22 +386,7 @@
             case 5: {
                 List<CabinetGridDo> gridDos = getVM().getOpenGrids();
                 if (gridDos.size() > 0) {
-                    tipDownCount = 10;
-                    isShowTip = true;
-                    getDB().tvDjs.setText(tipDownCount + "s");
-                    StringBuilder sb = new StringBuilder();
-                    for(CabinetGridDo d:gridDos){
-                        if (sb.length()>0) {
-                            sb.append("銆�");
-                        }
-                        String name = d.getCabinetName();
-                        if (TextUtils.isEmpty(name)) {
-                            name = gridDos.get(0).getGridKey();
-                        }
-                        sb.append(name);
-                    }
-                    getDB().tvTip22.setText(getTipText(sb.toString()), TextView.BufferType.SPANNABLE);
-                    getDB().clTip.setVisibility(View.VISIBLE);
+                    showUnCloseTip(gridDos);
                 }else {
                     isShowTip = false;
                     getDB().clTip.setVisibility(View.GONE);
@@ -436,6 +399,35 @@
             default:
                 break;
         }
+    }
+
+    private void showUnCloseTip(List<CabinetGridDo> gridDos){
+        tipDownCount = 10;
+        isShowTip = true;
+        getDB().tvDjs.setText(tipDownCount + "s");
+        StringBuilder sb = new StringBuilder();
+        for(CabinetGridDo d:gridDos){
+            if (sb.length()>0) {
+                sb.append("銆�");
+            }
+            String name = d.getCabinetName();
+            if (TextUtils.isEmpty(name)) {
+                name = gridDos.get(0).getGridKey();
+            }
+            sb.append(name);
+        }
+        getDB().tvTip22.setText(getTipText(sb.toString()), TextView.BufferType.SPANNABLE);
+        getDB().tvTip23.setText(getErrPhoneText(), TextView.BufferType.SPANNABLE);
+        getDB().clTip.setVisibility(View.VISIBLE);
+    }
+
+    private SpannableString getErrPhoneText(){
+        String phone = MApplication.getConfigBean().getLinkPhone();
+        String text = "濡傛湁闂璇疯仈绯荤鐞嗗憳"+phone;
+        SpannableString styledText = new SpannableString(text);
+        styledText.setSpan(new TextAppearanceSpan(this, R.style.style_tip3), 0, text.length()-phone.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+        styledText.setSpan(new TextAppearanceSpan(this,R.style.style_tip1), text.length()-phone.length()+1, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+        return styledText;
     }
 
     private boolean isShowing = false;
@@ -1171,7 +1163,6 @@
                         EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"",
                                 Integer.parseInt(e.getKey().substring(0,2), 16)+""));
                     }else {
-                        //todo 鍏抽棬鎴愬姛
                         if(isShowTip){
                             doRegister(5,null);
                         }
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java
index 16c401a..d1d11bd 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java
@@ -295,7 +295,7 @@
                 .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) {
                     @Override
                     public void onNext(@NonNull BaseResponse response) {
-
+                        toast("瓒呮椂鏈叧闂ㄦ帴鍙h皟鐢ㄦ垚鍔�");
                     }
 
                     @Override
@@ -323,7 +323,7 @@
                 .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) {
                     @Override
                     public void onNext(@NonNull BaseResponse response) {
-
+                        toast("鍏抽棬鎺ュ彛璋冪敤鎴愬姛");
                     }
 
                     @Override
diff --git a/keyCabinet-android/app/src/main/res/layout/face_activity.xml b/keyCabinet-android/app/src/main/res/layout/face_activity.xml
index 8781983..fd8c59f 100644
--- a/keyCabinet-android/app/src/main/res/layout/face_activity.xml
+++ b/keyCabinet-android/app/src/main/res/layout/face_activity.xml
@@ -439,7 +439,7 @@
                 android:id="@+id/tv_jg2"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="濡傛湁闂璇疯仈绯荤鐞嗗憳15899098765"
+                android:text="濡傛湁闂璇疯仈绯荤鐞嗗憳"
                 android:textColor="#ff666666"
                 android:textSize="24sp"
                 app:layout_constraintTop_toBottomOf="@+id/tv_jg1"
diff --git a/keyCabinet-android/app/src/main/res/layout/home_fragment_lbt_item.xml b/keyCabinet-android/app/src/main/res/layout/home_fragment_lbt_item.xml
index bc2419a..34a8410 100644
--- a/keyCabinet-android/app/src/main/res/layout/home_fragment_lbt_item.xml
+++ b/keyCabinet-android/app/src/main/res/layout/home_fragment_lbt_item.xml
@@ -3,14 +3,14 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:paddingLeft="60dp"
-    android:paddingRight="60dp">
+    android:paddingLeft="30dp"
+    android:paddingRight="30dp">
 
     <com.facebook.drawee.view.SimpleDraweeView
         android:id="@+id/sim_icon"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        app:viewAspectRatio="2.3"
+        app:viewAspectRatio="2.2"
         style="@style/sim_nomal"
         app:roundedCornerRadius="20dp"
         app:layout_constraintTop_toTopOf="parent"
diff --git a/keyCabinet-android/app/src/main/res/layout/key_cabinet_activity.xml b/keyCabinet-android/app/src/main/res/layout/key_cabinet_activity.xml
index 857a499..a32a5b2 100644
--- a/keyCabinet-android/app/src/main/res/layout/key_cabinet_activity.xml
+++ b/keyCabinet-android/app/src/main/res/layout/key_cabinet_activity.xml
@@ -147,7 +147,7 @@
                 android:id="@+id/tv_jg2"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="濡傛湁闂璇疯仈绯荤鐞嗗憳15899098765"
+                android:text="濡傛湁闂璇疯仈绯荤鐞嗗憳"
                 android:textColor="#ff666666"
                 android:textSize="24sp"
                 app:layout_constraintTop_toBottomOf="@+id/tv_jg1"
@@ -211,7 +211,7 @@
                 android:id="@+id/tv_tip2_2"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="濡傛湁闂璇疯仈绯荤鐞嗗憳15899098765"
+                android:text="濡傛湁闂璇疯仈绯荤鐞嗗憳"
                 android:textColor="#ff666666"
                 android:textSize="24sp"
                 app:layout_constraintTop_toBottomOf="@+id/tv_tip2_1"
diff --git a/keyCabinet-android/app/src/main/res/layout/main_activity.xml b/keyCabinet-android/app/src/main/res/layout/main_activity.xml
index 1df9cf9..cc4426a 100644
--- a/keyCabinet-android/app/src/main/res/layout/main_activity.xml
+++ b/keyCabinet-android/app/src/main/res/layout/main_activity.xml
@@ -165,17 +165,14 @@
             android:id="@+id/img2"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:background="@mipmap/bg_home"
             android:scaleType="fitXY"
             app:viewAspectRatio="2.2"
-            android:layout_marginLeft="30dp"
-            android:layout_marginRight="30dp"
             app:layout_constraintTop_toBottomOf="@+id/bg_huan"
             android:layout_marginTop="30dp"/>
 
         <com.bigkoo.convenientbanner.ConvenientBanner
             android:id="@+id/banner"
-            android:layout_width="0dp"
+            android:layout_width="match_parent"
             android:layout_height="0dp"
             app:layout_constraintTop_toTopOf="@+id/img2"
             app:layout_constraintBottom_toBottomOf="@+id/img2"
@@ -351,6 +348,18 @@
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintEnd_toEndOf="parent"/>
 
+            <TextView
+                android:id="@+id/tv_tip2_3"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="濡傛湁闂璇疯仈绯荤鐞嗗憳15899098765"
+                android:textColor="#ff666666"
+                android:textSize="24sp"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintBottom_toBottomOf="parent"
+                android:layout_marginBottom="45dp"/>
+
         </androidx.constraintlayout.widget.ConstraintLayout>
 
         <androidx.core.widget.NestedScrollView
diff --git a/keyCabinet-android/app/src/main/res/layout/manage_cabinet_activity.xml b/keyCabinet-android/app/src/main/res/layout/manage_cabinet_activity.xml
index fc6ded8..e2655a4 100644
--- a/keyCabinet-android/app/src/main/res/layout/manage_cabinet_activity.xml
+++ b/keyCabinet-android/app/src/main/res/layout/manage_cabinet_activity.xml
@@ -443,7 +443,8 @@
                     app:commandType="@{6}"
                     app:onClickCommand="@{model.myTypeCommand}"
                     android:layout_marginLeft="30dp"
-                    android:layout_marginRight="30dp"/>
+                    android:layout_marginRight="30dp"
+                    />
 
                 <TextView
                     android:id="@+id/tv_bjgz"
diff --git a/keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml b/keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml
index f3bdf42..da2a0f5 100644
--- a/keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml
+++ b/keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml
@@ -76,7 +76,7 @@
                 android:layout_width="0dp"
                 android:layout_height="75dp"
                 android:background="@null"
-                android:text=""
+                android:text="15055153182"
                 android:textColor="#111111"
                 android:hint="璇疯緭鍏ョ櫥褰曡处鍙�"
                 android:textColorHint="#999999"
@@ -126,7 +126,7 @@
                 android:layout_width="0dp"
                 android:layout_height="75dp"
                 android:background="@null"
-                android:text=""
+                android:text="123456a"
                 android:hint="璇疯緭鍏ヨ处鍙峰瘑鐮�"
                 android:textColorHint="#999999"
                 android:textSize="24sp"
diff --git a/keyCabinet-android/app/src/main/res/values/styles.xml b/keyCabinet-android/app/src/main/res/values/styles.xml
index a511123..53282a5 100644
--- a/keyCabinet-android/app/src/main/res/values/styles.xml
+++ b/keyCabinet-android/app/src/main/res/values/styles.xml
@@ -113,4 +113,7 @@
     <style name="style_tip2">
         <item name="android:textColor">#FF111111</item>
     </style>
+    <style name="style_tip3">
+        <item name="android:textColor">#ff666666</item>
+    </style>
 </resources>
\ No newline at end of file

--
Gitblit v1.9.3