@Override
 protected void onClick(int id, View view) {
   final OrderDetailBean.DataEntity detail = orderDetailLayout.getDetail();
   if (detail == null) {
     return;
   }
   String orderId = detail.getOrderid();
   switch (id) {
     case R.id.btn_sign_appointment: // 签到
       if (AppTools.isNetworkConnected()) {
         AppTools.showNormalSnackBar(parentView, getString(R.string.main_locating));
         AppTools.locate(this);
       } else {
         AppTools.showSettingSnackBar(parentView, getString(R.string.no_network_is_detected));
       }
       break;
     case R.id.btn_edit_appointment: // 修改预约
       alterPopupWindow.showAtLocation(parentView, Gravity.BOTTOM, 0, 0);
       break;
     case R.id.btn_appointment_again: // 再次预约
       appointAgain();
       break;
     case R.id.btn_confirm_done: // 完成工单
       completeAcce();
       break;
     case R.id.btn_engineer:
       contactEngineer(detail);
       break;
     case R.id.btn_user:
       contactUser(detail);
       break;
     case R.id.tv_location:
       locationActivityLogic(detail);
       break;
     case R.id.btn_track:
       startActivity(
           new Intent().putExtra("orderId", orderId).setClass(this, OrderTrackingActivity.class));
       break;
     case R.id.textView: // 联系客服
       contactService(orderId);
       BGABadgeTextView bt = (BGABadgeTextView) view;
       bt.hiddenBadge();
       break;
     case R.id.btn_expenses:
       startActivity(new Intent(this, ExpensesDetailActivity.class).putExtra("orderId", orderId));
       break;
     case R.id.btn_msg: // 短信转发
       if (PermissionTools.alreadyHasPermission(
           this, AppKeyMap.GINGERBREAD, Manifest.permission.SEND_SMS)) {
         smsForword();
       }
       break;
   }
 }