Prechádzať zdrojové kódy

风险管理6月8日提交代码-liu.bolan--千海金部分UI

Liu.bolan 4 rokov pred
rodič
commit
3d261984ae
27 zmenil súbory, kde vykonal 1243 pridanie a 64 odobranie
  1. 3 3
      RMA/app/build.gradle
  2. 19 19
      RMA/app/proguard-rules.pro
  3. 6 0
      RMA/app/src/main/AndroidManifest.xml
  4. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/business/contract/adapter/ContractAdapter.kt
  5. 6 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/VerificationCodeData.kt
  6. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/update/check/CheckUpdate.java
  7. 4 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt
  8. 2 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt
  9. 1 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/ExposureViewModel.kt
  10. 11 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/trade/GoodsTradeActivity.kt
  11. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeFragment.kt
  12. 68 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractPublicView.kt
  13. 3 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/reportquery/InventoryRecordAdapter.java
  14. 4 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/reportquery/reportdetail/ReportCommonDetailsViewModel.kt
  15. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tradingquery/EntrustHistoryViewHolder.kt
  16. 3 3
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tradingquery/TradingQueryActivity.kt
  17. 28 19
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/LoginActivity.kt
  18. 425 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/register/EnterpriseRegisterActivity.kt
  19. 275 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/register/PersonalRegisterActivity.kt
  20. 113 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/register/RegisterSelectActivity.kt
  21. 265 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/register/RegisterViewModel.kt
  22. 2 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ContractDetailActivity.kt
  23. BIN
      RMA/app/src/main/res/mipmap-xhdpi/qhj_more.png
  24. BIN
      RMA/app/src/main/res/mipmap-xhdpi/qhj_register_enterprise.png
  25. BIN
      RMA/app/src/main/res/mipmap-xhdpi/qhj_register_people.png
  26. BIN
      RMA/app/src/main/res/mipmap-xhdpi/qhj_sqcode.png
  27. 1 0
      RMA/app/src/main/res/values/colors.xml

+ 3 - 3
RMA/app/build.gradle

@@ -19,8 +19,8 @@ android {
         applicationId "cn.muchinfo.rma"
         minSdkVersion 24
         targetSdkVersion 30
-        versionCode 50006
-        versionName "5.0.06"
+        versionCode 50007
+        versionName "5.0.07"
         multiDexEnabled true
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         //指定room.schemaLocation生成的文件路径
@@ -53,7 +53,7 @@ android {
 
     buildTypes {
         release {
-            minifyEnabled true
+            minifyEnabled false
             signingConfig signingConfigs.release
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }

+ 19 - 19
RMA/app/proguard-rules.pro

@@ -41,22 +41,22 @@
 -keepnames class * implements java.io.Serializable #需要序列化和反序列化的类不能被混淆(注:Java反射用到的类也不能被混淆)
 
 
-#-dontwarn com.zhy.http.**
-#-keep class com.zhy.http.**{*;}
-#
-##okhttp
-#-dontwarn okhttp3.**
-#-keep class okhttp3.**{*;}
+-dontwarn com.zhy.http.**
+-keep class com.zhy.http.*{*;}
+
+#okhttp
+-dontwarn okhttp3.**
+-keep class okhttp3.*{*;}
 
 #okio
 -dontwarn okio.**
--keep class okio.**{*;}
+-keep class okio.*{*;}
 
 -dontwarn com.google.auto.**
--keep class com.google.auto.**{*;}
+-keep class com.google.auto.* { *;}
 
 -dontwarn com.google.common.**
--keep class com.google.common.**{*;}
+-keep class com.google.common.*{*;}
 
 # 支付
 -keep class com.alipay.android.app.IAlixPay{*;}
@@ -69,21 +69,21 @@
     <fields>;
     <methods>;
 }
--keep class com.alipay.android.phone.mrpc.core.** { *; }
--keep class com.alipay.apmobilesecuritysdk.** { *; }
--keep class com.alipay.mobile.framework.service.annotation.** { *; }
--keep class com.alipay.mobilesecuritysdk.face.** { *; }
--keep class com.alipay.tscenter.biz.rpc.** { *; }
--keep class org.json.alipay.** { *; }
--keep class com.alipay.tscenter.** { *; }
--keep class com.ta.utdid2.** { *;}
--keep class com.ut.device.** { *;}
+-keep class com.alipay.android.phone.mrpc.core.* { *; }
+-keep class com.alipay.apmobilesecuritysdk.* { *; }
+-keep class com.alipay.mobile.framework.service.annotation.* { *; }
+-keep class com.alipay.mobilesecuritysdk.face.* { *; }
+-keep class com.alipay.tscenter.biz.rpc.* { *; }
+-keep class org.json.alipay.* { *; }
+-keep class com.alipay.tscenter.* { *; }
+-keep class com.ta.utdid2.* { *;}
+-keep class com.ut.device.* { *;}
 
 -dontwarn com.alipay.**
 
 
 -keepattributes *Annotation*
--keepclassmembers class ** {
+-keepclassmembers class * {
     @org.greenrobot.eventbus.Subscribe <methods>;
 }
 -keep enum org.greenrobot.eventbus.ThreadMode { *; }

+ 6 - 0
RMA/app/src/main/AndroidManifest.xml

@@ -324,6 +324,12 @@
         <activity android:name=".view.base.main.addressmanagement.StoresAddressListActivity"/>
 
         <activity android:name=".view.base.main.castsurely.AddCastSurelyActivity"/>
+
+        <activity android:name=".view.base.login.register.RegisterSelectActivity"/>
+
+        <activity android:name=".view.base.login.register.EnterpriseRegisterActivity"/>
+
+        <activity android:name=".view.base.login.register.PersonalRegisterActivity"/>
     </application>
 
 </manifest>

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/business/contract/adapter/ContractAdapter.kt

@@ -405,7 +405,7 @@ object ContractAdapter {
         builder.remark = remark
         builder.operateType = operateType
         builder.setClientTicket(UUID.randomUUID().toString().replace("-", ""))
-        builder.operateApplyID = operateApplyID
+        builder.operateApplyID = TimeUtils.getNowMills()
         builder.operateSrc = 2
         builder.info = info
         val arrayOutputStream = ByteArrayOutputStream()

+ 6 - 0
RMA/app/src/main/java/cn/muchinfo/rma/global/data/VerificationCodeData.kt

@@ -0,0 +1,6 @@
+package cn.muchinfo.rma.global.data
+
+data class VerificationCodeData(
+    val success : Boolean = false,
+    val msg : String = ""
+)

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/update/check/CheckUpdate.java

@@ -58,7 +58,7 @@ class CheckUpdate {
 //        }
         OkHttpUtils
                 .get()
-                .url("http://192.168.31.23:9999/PhoneService/GetUpdateInfo")
+                .url("http://103.40.249.126:8012/PhoneService/GetUpdateInfo")
                 .build()
                 .execute(new StringCallback() {
 

+ 4 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/MainActivity.kt

@@ -175,10 +175,10 @@ class MainActivity : BaseActivity<MainViewModel>() {
 //        newSelectIcon.add(R.mipmap.qhj_sphg_tab_select)
 
         //前海金我的页面
-        newFragments.add(seaKingMainFragment)
-        newTabText.add("我的")
-        newNormalIcon.add(R.mipmap.qhj_main_tab_normal)
-        newSelectIcon.add(R.mipmap.qhj_main_tab_select)
+//        newFragments.add(seaKingMainFragment)
+//        newTabText.add("我的")
+//        newNormalIcon.add(R.mipmap.qhj_main_tab_normal)
+//        newSelectIcon.add(R.mipmap.qhj_main_tab_select)
 
     }
 

+ 2 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/app/Constant.kt

@@ -9,8 +9,8 @@ object Constant {
 //    const val baseurl = "http://103.40.249.127:28280/cfg?key=mtp_20"
 //    const val baseurl = "http://192.168.30.125:8080/cfg?key=test_125"
 //    const val baseurl = "http://192.168.31.114:8080/cfg?key=test_114" // shenzhen01  123123
-    const val baseurl = "http://192.168.31.220:8080/cfg?key=test_220"//李倩
-//      const val baseurl = "http://192.168.30.211:8080/cfg?key=test_211"// 瑶姐
+//    const val baseurl = "http://192.168.31.220:8080/cfg?key=test_220"//李倩
+      const val baseurl = "http://192.168.30.211:8080/cfg?key=test_211"// 瑶姐
 //    const val baseurl = "http://192.168.31.175:8080/cfg?key=test_175" // 8888  123123
 //    const val baseurl = "http://192.168.31.223:8080/cfg?key=test_223"
 //    const val baseurl = "http://192.168.31.174:8080/cfg?key=test_174"// 邓工

+ 1 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/exposure/ExposureViewModel.kt

@@ -177,6 +177,7 @@ class ExposureViewModel : BaseViewModel(){
     fun queryRealtimeExposure(){
         val params = mutableMapOf<String, String>().apply {
             put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+            put("usertype",GlobalDataCollection.instance?.userAccountData?.usertype.toString())
         }
 
         MyApplication.getInstance()?.exposureManager?.queryRealtimeExposure(params = params){isSuccess, respData, error ->

+ 11 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/future/trade/GoodsTradeActivity.kt

@@ -389,7 +389,7 @@ class GoodsTradeActivity : BaseActivity<GoodsTradeViewModel>() {
                                     gravity = Gravity.CENTER_VERTICAL
                                     textView {
                                         viewModel.quoteDayData.bindOptional(context) {
-                                            text = it?.getPrice().toString()
+                                            text = NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.getPrice().toString()),2)
                                         }
                                         text = "0.0"
                                         textSizeAuto = 31
@@ -402,7 +402,7 @@ class GoodsTradeActivity : BaseActivity<GoodsTradeViewModel>() {
 
                                     textView {
                                         viewModel.quoteDayData.bindOptional(context) {
-                                            text = it?.getPrice()?.minus(it.preclose).toString()
+                                            text = NumberUtils.roundNum(NumberUtils.doubleDistortion(it?.getPrice()?.minus(it.preclose).toString()),2)
                                         }
                                         text = "0.0"
                                         textSizeAuto = 31
@@ -1375,4 +1375,13 @@ fun _LinearLayout.itemView() {
     view {
         background = resources.getDrawable(R.color.rma_hint_line_color_eee)
     }.lparams(matchParent, autoSize(1))
+}
+
+fun _LinearLayout.itemPaddingView() {
+    view {
+        background = resources.getDrawable(R.color.rma_hint_line_color_eee)
+    }.lparams(matchParent, autoSize(1)){
+        marginStart = autoSize(36)
+        marginEnd = autoSize(36)
+    }
 }

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/HomeFragment.kt

@@ -880,7 +880,7 @@ class FirstTabUI(private val baseFragment: Fragment, private val viewModel: Home
                     }.lparams(0, matchParent, 1f)
 
                     verticalLayout {
-                        if (GlobalDataCollection.instance?.getFirstLevelMenu(code = "client_tradeflow") == true){
+                        if (GlobalDataCollection.instance?.getFirstLevelMenu(code = "client_traderflow") == true){
                             visibility = View.VISIBLE
                         }else{
                             visibility = View.GONE

+ 68 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/contract/ContractPublicView.kt

@@ -586,6 +586,74 @@ fun _LinearLayout.contractDetailFourView(data: ContractData) {
         viewItemUI()
 
         linearLayout {
+
+            gravity = Gravity.CENTER_VERTICAL
+            textView {
+                text = "业  务  员"
+                textSizeAuto = 31
+                textColorInt = R.color.p_normal_summary_txt_color
+            }.lparams(wrapContent, wrapContent) {
+                marginStart = autoSize(59)
+            }
+
+            textView {
+                text = data.saleuserlogincode?.isBlankString()
+                textColorInt = R.color.rma_black_33
+                textSizeAuto = 31
+            }.lparams(wrapContent, wrapContent) {
+                marginStart = autoSize(80)
+            }
+        }.lparams(matchParent, autoSize(132))
+
+        viewItemUI()
+
+
+        linearLayout {
+
+            gravity = Gravity.CENTER_VERTICAL
+            textView {
+                text = "跟  单  员"
+                textSizeAuto = 31
+                textColorInt = R.color.p_normal_summary_txt_color
+            }.lparams(wrapContent, wrapContent) {
+                marginStart = autoSize(59)
+            }
+
+            textView {
+                text = data.meruserlogincode?.isBlankString()
+                textColorInt = R.color.rma_black_33
+                textSizeAuto = 31
+            }.lparams(wrapContent, wrapContent) {
+                marginStart = autoSize(80)
+            }
+        }.lparams(matchParent, autoSize(132))
+
+        viewItemUI()
+
+
+        linearLayout {
+
+            gravity = Gravity.CENTER_VERTICAL
+            textView {
+                text = "交易用户"
+                textSizeAuto = 31
+                textColorInt = R.color.p_normal_summary_txt_color
+            }.lparams(wrapContent, wrapContent) {
+                marginStart = autoSize(59)
+            }
+
+            textView {
+                text = data.tradeusername?.isBlankString()
+                textColorInt = R.color.rma_black_33
+                textSizeAuto = 31
+            }.lparams(wrapContent, wrapContent) {
+                marginStart = autoSize(80)
+            }
+        }.lparams(matchParent, autoSize(132))
+
+        viewItemUI()
+
+        linearLayout {
 //            if (data.remark.isNullOrEmpty()) {
 //                visibility = View.GONE
 //            } else {

+ 3 - 3
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/reportquery/InventoryRecordAdapter.java

@@ -177,7 +177,7 @@ public class InventoryRecordAdapter extends RecyclerView.Adapter<InventoryRecord
         //库存明细
         itemViewHolder.inventory_details.setOnClickListener(view -> {
             Intent intent = new Intent();
-            intent.putExtra("title", "现货报表明细");
+            intent.putExtra("title", "库存明细");
             intent.putExtra("time", this.time);
             intent.putExtra("transaction", this.transaction);
             if (data.getCycletype().equals("0")) {
@@ -199,7 +199,7 @@ public class InventoryRecordAdapter extends RecyclerView.Adapter<InventoryRecord
         //仓库明细
         itemViewHolder.futures_subsidiary.setOnClickListener(view -> {
             Intent intent = new Intent();
-            intent.putExtra("title", "现货报表明细");
+            intent.putExtra("title", "仓库明细");
             intent.putExtra("time", this.time);
             intent.putExtra("transaction", this.transaction);
             if (data.getCycletype().equals("0")) {
@@ -221,7 +221,7 @@ public class InventoryRecordAdapter extends RecyclerView.Adapter<InventoryRecord
         //品牌明细
         itemViewHolder.place_the_order.setOnClickListener(view -> {
             Intent intent = new Intent();
-            intent.putExtra("title", "现货报表明细");
+            intent.putExtra("title", "品牌明细");
             intent.putExtra("time", this.time);
             intent.putExtra("transaction", this.transaction);
             if (data.getCycletype().equals("0")) {

+ 4 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/reportquery/reportdetail/ReportCommonDetailsViewModel.kt

@@ -396,8 +396,8 @@ class ReportCommonDetailsViewModel : BaseViewModel(){
         dataList.forEach {
             val data = ReportCommonDetailData()
             val newRightData = arrayListOf<String>()
-            data.leftContent = it.warehousename + "\n" + it.deliverygoodsname//'仓库/\n 现货品种 '
-            newRightData.add(it.wrstandardname  + "\n" + it.brandname)//'现货品类/\n 现货品牌 '
+            data.leftContent = it.deliverygoodsname + "\n" + it.wrstandardname//\n 现货品种 '现货品类/
+            newRightData.add(it.brandname  + "\n" + it.warehousename)//'\n 现货品牌 ''仓库/
             newRightData.add(it.diffqty + it.enumdicname)//'库存变化量 '
             newRightData.add(it.oristock + it.enumdicname + "\n" + it.curstock + it.enumdicname)//'期初库存量/\n 期末库存量'
             newRightData.add(it.todaybuyinqty + it.enumdicname + "\n" + it.todayselloutqty + it.enumdicname)//'采购入库量/\n 销售出库量'
@@ -415,8 +415,8 @@ class ReportCommonDetailsViewModel : BaseViewModel(){
             val data = ReportCommonDetailData()
             data.leftContent = it.reckondate ?: ""//日期
             val newRightData = arrayListOf<String>()
-            newRightData.add(it.warehousename + "\n" + it.deliverygoodsname)//'仓库/\n 现货品种 '
-            newRightData.add(it.wrstandardname  + "\n" + it.brandname)//'现货品类/\n 现货品牌 '
+            newRightData.add(it.deliverygoodsname + "\n" + it.wrstandardname)//\n 现货品种 '现货品类/
+            newRightData.add(it.brandname  + "\n" + it.warehousename)//n 现货品牌 ''仓库/
             newRightData.add(it.diffqty + it.enumdicname)//'库存变化量 '
             newRightData.add(it.oristock + it.enumdicname + "\n" + it.curstock + it.enumdicname)//'期初库存量/\n 期末库存量'
             newRightData.add(it.todaybuyinqty + it.enumdicname + "\n" + it.todayselloutqty + it.enumdicname)//'采购入库量/\n 销售出库量'

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tradingquery/EntrustHistoryViewHolder.kt

@@ -168,7 +168,7 @@ class EntrustHistoryViewHolder(
 
                 textView {
                     //判断是否有相应权限显示该功能
-                    if (GlobalDataCollection.instance?.getThreeLevelMenu(firstCode = "client_tradeflow",secondCode = "client_traderflow_hisorder",threeCode = "client_traderflow_hisorder_chart") == true){
+                    if (GlobalDataCollection.instance?.getThreeLevelMenu(firstCode = "client_traderflow",secondCode = "client_traderflow_hisorder",threeCode = "client_traderflow_hisorder_chart") == true){
                         visibility = View.VISIBLE
                     }else{
                         visibility = View.GONE

+ 3 - 3
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/tradingquery/TradingQueryActivity.kt

@@ -88,15 +88,15 @@ class TradingQueryActivity : BaseActivity<TradingQueryViewModel>() {
     private val uiList : ArrayList<_FrameLayout> = arrayListOf()
 
     fun initMenuData(){
-        if (GlobalDataCollection.instance?.getSecondLevelMenu(firstCode = "client_tradeflow",secondCode = "client_traderflow_hisorder") == true){
+        if (GlobalDataCollection.instance?.getSecondLevelMenu(firstCode = "client_traderflow",secondCode = "client_traderflow_hisorder") == true){
             newTabsArray.add("历史委托")
             uiList.add(historyCommissionedUI.root)
         }
-        if (GlobalDataCollection.instance?.getSecondLevelMenu(firstCode = "client_tradeflow",secondCode = "client_traderflow_histrade") == true){
+        if (GlobalDataCollection.instance?.getSecondLevelMenu(firstCode = "client_traderflow",secondCode = "client_traderflow_histrade") == true){
             newTabsArray.add("历史成交")
             uiList.add(historyDealUI.root)
         }
-        if (GlobalDataCollection.instance?.getSecondLevelMenu(firstCode = "client_tradeflow",secondCode = "client_traderflow_hista") == true){
+        if (GlobalDataCollection.instance?.getSecondLevelMenu(firstCode = "client_traderflow",secondCode = "client_traderflow_hista") == true){
             newTabsArray.add("历史流水")
             uiList.add(moneyFlowingUI.root)
         }

+ 28 - 19
RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/LoginActivity.kt

@@ -29,6 +29,7 @@ import cn.muchinfo.rma.view.base.BaseActivity
 import cn.muchinfo.rma.view.base.app.Constant
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import cn.muchinfo.rma.view.base.home.set.ResetPasswordActivity
+import cn.muchinfo.rma.view.base.login.register.RegisterSelectActivity
 import com.blankj.utilcode.util.*
 import com.qmuiteam.qmui.kotlin.onClick
 import com.qmuiteam.qmui.util.QMUIStatusBarHelper
@@ -135,24 +136,25 @@ class LoginActivity : BaseActivity<LoginViewModel>() , UserPopupWindow.OnClearAc
                 editText {
 
                     textChangedListener {
-                        afterTextChanged {
-                            if (it.toString().isNotEmpty()){
-                                val oldMap: Map<String, String> =
-                                    NumberUtils.getHashMapData(Constant.MTP_LOGIN_ACCOUNT)
-                                val psw =
-                                    oldMap[it.toString().trim { it <= ' ' }]
-                                if (psw != null) {
-                                    if (psw.contains("-")) {
-                                        val pswlist =
-                                            psw.split("-").toTypedArray()
-                                        loginPwdEditText?.setText(EnUtil.decrypt(pswlist[0]))
-                                    } else {
-                                        loginPwdEditText?.setText(EnUtil.decrypt(psw))
-                                    }
-                                } else {
-                                    loginPwdEditText?.setText("")
-                                }
-                            }
+                        afterTextChanged {//记住密码功能暂时没有了
+
+//                            if (it.toString().isNotEmpty()){
+//                                val oldMap: Map<String, String> =
+//                                    NumberUtils.getHashMapData(Constant.MTP_LOGIN_ACCOUNT)
+//                                val psw =
+//                                    oldMap[it.toString().trim { it <= ' ' }]
+//                                if (psw != null) {
+//                                    if (psw.contains("-")) {
+//                                        val pswlist =
+//                                            psw.split("-").toTypedArray()
+//                                        loginPwdEditText?.setText(EnUtil.decrypt(pswlist[0]))
+//                                    } else {
+//                                        loginPwdEditText?.setText(EnUtil.decrypt(psw))
+//                                    }
+//                                } else {
+//                                    loginPwdEditText?.setText("")
+//                                }
+//                            }
                         }
                     }
                     hintColorStr = "#83B7FF"
@@ -239,6 +241,7 @@ class LoginActivity : BaseActivity<LoginViewModel>() , UserPopupWindow.OnClearAc
             linearLayout {
                 gravity = Gravity.CENTER_VERTICAL
                 checkBox {
+                    visibility = View.GONE
                     p_tips = this
                     buttonDrawable = null
                     background = resources.getDrawable(R.drawable.checkbox_switch_selector)
@@ -251,7 +254,13 @@ class LoginActivity : BaseActivity<LoginViewModel>() , UserPopupWindow.OnClearAc
                 }
 
                 textView {
-                    text = "记住密码"
+                    onThrottleFirstClick {
+                        val intent = Intent()
+                        intent.setClass(context,RegisterSelectActivity::class.java)
+                        ActivityUtils.startActivity(intent)
+                    }
+                    text = "用户注册"
+//                    text = "记住密码"
                     textColorInt = R.color.white
                     textSizeAuto = 34
                 }.lparams(wrapContent, wrapContent) {

+ 425 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/register/EnterpriseRegisterActivity.kt

@@ -0,0 +1,425 @@
+package cn.muchinfo.rma.view.base.login.register
+
+import android.app.Dialog
+import android.graphics.BitmapFactory
+import android.net.Uri
+import android.os.Bundle
+import android.view.Gravity
+import android.view.View
+import android.widget.EditText
+import androidx.lifecycle.MutableLiveData
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.netManage.base.InteractiveException
+import cn.muchinfo.rma.netManage.utils.UpLoadUtils
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.autoWidget.photopicter.PhotoUtils
+import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.app.Constant
+import cn.muchinfo.rma.view.base.future.trade.itemPaddingView
+import cn.muchinfo.rma.view.base.future.trade.itemView
+import cn.muchinfo.rma.view.base.home.contract.verticalEmptyView
+import com.alibaba.fastjson.JSON
+import com.blankj.utilcode.util.EncodeUtils
+import com.blankj.utilcode.util.LogUtils
+import com.blankj.utilcode.util.SPUtils
+import com.blankj.utilcode.util.ToastUtils
+import com.zhy.http.okhttp.callback.StringCallback
+import mtp.polymer.com.autowidget.dialog.createLoadingDialog
+import mtp.polymer.com.autowidget.utils.TaskUiModel
+import mtp.polymer.com.autowidget.utils.bindTaskStatus
+import okhttp3.Call
+import org.jetbrains.anko.*
+import org.jetbrains.anko.sdk25.coroutines.textChangedListener
+import org.json.JSONArray
+import org.json.JSONException
+import org.json.JSONObject
+import java.io.File
+
+/**
+ * 企业用户注册页面
+ */
+class EnterpriseRegisterActivity : BaseActivity<RegisterViewModel>() {
+
+    private var uploadFile: String = ""//上传成功后服务给的图片地址
+    private val imageString: MutableLiveData<String> =
+        MutableLiveData<String>().apply { value = "" }//文件地址
+
+    private var loadingDialog: Dialog? = null
+
+    //输入的企业名称
+    lateinit var enterprise_name: EditText
+
+    //输入的验证码
+    lateinit var verification_code: EditText
+
+    //输入的登录账号
+    lateinit var login_code: EditText
+
+    //输入的登录密码
+    lateinit var login_password: EditText
+
+    //输入的联系人手机号
+    lateinit var phone_number : EditText
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        verticalLayout {
+            viewModel.getVerificationCode()
+            loadingDialog = createLoadingDialog(hintStr = "请求中")
+            loadingDialog?.bindTaskStatus(context, viewModel.loadingDialogStatus)
+            background = resources.getDrawable(R.color.main_hit_bg_color)
+            //页面标题
+            topBar {
+                commonLeftButton()
+                commonTitle {
+                    text = "企业用户注册"
+                }
+            }
+
+            verticalLayout {
+                background = resources.getDrawable(R.color.white)
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        text = "企业名称"
+                        textSizeAuto = 29
+                        textColorInt = R.color.hint_text_color
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(66))
+
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    editText {
+                        hintColorStr = "#DDDDDD"
+                        textColorInt = R.color.rma_black_33
+                        enterprise_name = this
+                        hint = "请输入企业名称"
+                        background = null
+                        textSizeAuto = 34
+                    }.lparams(0, wrapContent, 1f) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(100))
+            }.lparams(matchParent, autoSize(166))
+
+            itemPaddingView()
+
+            verticalLayout {
+                background = resources.getDrawable(R.color.white)
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        text = "验证码"
+                        textSizeAuto = 29
+                        textColorInt = R.color.hint_text_color
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(66))
+
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    editText {
+                        hintColorStr = "#DDDDDD"
+                        textColorInt = R.color.rma_black_33
+                        verification_code = this
+                        hint = "请输入验证码"
+                        background = null
+                        textSizeAuto = 34
+                    }.lparams(0, wrapContent, 1f) {
+                        marginStart = autoSize(36)
+                    }
+
+                    imageView {
+                        onThrottleFirstClick {
+                            viewModel.getVerificationCode()
+                        }
+                        viewModel.imageCode.bindOptional(context){
+                            setImageBitmap(BitmapFactory.decodeByteArray(EncodeUtils.base64Decode(it),0,EncodeUtils.base64Decode(it).size))
+                        }
+
+                    }.lparams(autoSize(180), autoSize(77)) {
+                        marginEnd = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(100))
+            }.lparams(matchParent, autoSize(166))
+
+            itemPaddingView()
+
+            verticalLayout {
+                background = resources.getDrawable(R.color.white)
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        text = "登录账号"
+                        textSizeAuto = 29
+                        textColorInt = R.color.hint_text_color
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(66))
+
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    editText {
+                        hintColorStr = "#DDDDDD"
+                        textColorInt = R.color.rma_black_33
+                        login_code = this
+                        hint = "请设置登录账号"
+                        background = null
+                        textSizeAuto = 34
+                    }.lparams(0, wrapContent, 1f) {
+                        marginStart = autoSize(36)
+                        marginEnd = autoSize(36)
+                    }
+
+                }.lparams(matchParent, autoSize(100))
+            }.lparams(matchParent, autoSize(166))
+
+            itemPaddingView()
+
+            verticalLayout {
+                background = resources.getDrawable(R.color.white)
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        text = "登录密码"
+                        textSizeAuto = 29
+                        textColorInt = R.color.hint_text_color
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(66))
+
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    editText {
+                        hintColorStr = "#DDDDDD"
+                        textColorInt = R.color.rma_black_33
+                        login_password = this
+                        hint = "请设置登录密码"
+                        background = null
+                        textSizeAuto = 34
+                    }.lparams(0, wrapContent, 1f) {
+                        marginStart = autoSize(36)
+                        marginEnd = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(100))
+            }.lparams(matchParent, autoSize(166))
+
+            itemPaddingView()
+
+            verticalLayout {
+                background = resources.getDrawable(R.color.white)
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        text = "手机号码"
+                        textSizeAuto = 29
+                        textColorInt = R.color.hint_text_color
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(66))
+
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    editText {
+                        hintColorStr = "#DDDDDD"
+                        textColorInt = R.color.rma_black_33
+                        phone_number = this
+                        hint = "请填写联系人手机号"
+                        background = null
+                        textSizeAuto = 34
+                    }.lparams(0, wrapContent, 1f) {
+                        marginStart = autoSize(36)
+                        marginEnd = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(100))
+            }.lparams(matchParent, autoSize(166))
+
+            itemPaddingView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    text = "营业执照"
+                    textSizeAuto = 29
+                    textColorInt = R.color.hint_text_color
+                }.lparams(wrapContent, wrapContent) {
+                    marginStart = autoSize(36)
+                }
+            }.lparams(matchParent, autoSize(66))
+
+
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                linearLayout {
+                    imageString.bindOptional(context) {
+                        visibility = if (it.isNullOrEmpty()) {
+                            View.VISIBLE
+                        } else {
+                            View.GONE
+                        }
+                    }
+                    visibility = View.VISIBLE
+                    onThrottleFirstClick {
+                        PhotoUtils().showPicker(this@EnterpriseRegisterActivity) {
+                            it.firstOrNull()?.let {
+                                viewModel.loadingDialogStatus.value =
+                                    TaskUiModel.inFlight()
+                                UpLoadUtils(this@EnterpriseRegisterActivity).uploadPicture(
+                                    File(it),
+                                    object : StringCallback() {
+                                        override fun onError(
+                                            call: Call,
+                                            e: Exception,
+                                            id: Int
+                                        ) {
+                                            LogUtils.e("hidahdashdsdasd", e.message)
+                                            viewModel.loadingDialogStatus.value =
+                                                TaskUiModel.failed(
+                                                    InteractiveException(
+                                                        errorMessage = e.message ?: ""
+                                                    )
+                                                )
+                                        }
+
+                                        override fun onResponse(
+                                            response: String,
+                                            id: Int
+                                        ) {
+                                            /*[{"originalName":"tem.jpg","fileName":"201907161657044712.jpg","fileSize":"0KB","fileType":"image/jpeg","filePath":"./uploadFile/20190716/201907161657044712.jpg","submitName":null}]*/
+                                            try {
+                                                viewModel.loadingDialogStatus.value =
+                                                    TaskUiModel.success("上传成功")
+                                                val jsonArray = JSONArray(response)
+                                                LogUtils.eTag(
+                                                    "图片",
+                                                    JSON.toJSONString(jsonArray)
+                                                )
+                                                for (i in 0 until jsonArray.length()) {
+                                                    uploadFile =
+                                                        (jsonArray.get(i) as JSONObject).getString(
+                                                            "filePath"
+                                                        )
+                                                    imageString.value = it
+                                                    LogUtils.e("hidahdashd", uploadFile)
+                                                }
+                                            } catch (e: JSONException) {
+                                                e.printStackTrace()
+                                            }
+
+                                        }
+                                    },
+                                    10000.0,
+                                    SPUtils.getInstance().getString(Constant.uploadUrl)
+                                )
+                            }
+                        }
+                    }
+                    background = resources.getDrawable(R.color.qhj_update_image_bg)
+                    gravity = Gravity.CENTER
+                    imageView {
+                        imageResource = R.mipmap.qhj_picture
+                    }.lparams(autoSize(96), autoSize(96))
+                }.lparams(autoSize(288), autoSize(288)) {
+                    marginStart = autoSize(50)
+                }
+
+                imageView {
+                    imageString.bindOptional(context) {
+                        if (it.isNullOrEmpty()) {
+                            visibility = View.GONE
+                        } else {
+                            visibility = View.VISIBLE
+                            setImageURI(Uri.parse(it))
+                        }
+                    }
+                    visibility = View.GONE
+                    onThrottleFirstClick {
+                        val path = imageString.value.guard {
+                            return@onThrottleFirstClick
+                        }
+                        PhotoUtils().showImageViewer(
+                            this@EnterpriseRegisterActivity,
+                            1,
+                            arrayListOf(path)
+                        )
+                    }
+                }.lparams(autoSize(288), autoSize(288)) {
+                    marginStart = autoSize(50)
+                }
+            }.lparams(matchParent, autoSize(300))
+
+            verticalEmptyView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    onThrottleFirstClick {
+                        if (check().not()){
+                            return@onThrottleFirstClick
+                        }
+                        viewModel.requestEnterpriseInfo(username = enterprise_name.text.toString(),vcode = verification_code.text.toString(),logincode = login_code.text.toString(),loginpwd = login_password.text.toString(),mobilephone = phone_number.text.toString(),cardfrontphotourl = uploadFile){
+                            finish()
+                        }
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundDrawable = createRoundRectDrawable("#2794FF", 20)
+                    text = "注册"
+                    textSizeAuto = 38
+                    textColorInt = R.color.white
+                }.lparams(matchParent, autoSize(119)) {
+                    marginStart = autoSize(59)
+                    marginEnd = autoSize(59)
+                }
+
+            }.lparams(matchParent, autoSize(144)) {
+                gravity = Gravity.BOTTOM
+            }
+        }
+    }
+
+    //注册前的输入内容校验
+    fun check() : Boolean{
+        if (enterprise_name.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入企业名称")
+            return false
+        }
+
+        if (verification_code.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入验证码")
+            return false
+        }
+
+        if (login_code.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入登录账号")
+            return false
+        }
+
+        if (login_password.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入登录密码")
+            return false
+        }
+
+        if (phone_number.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入联系人手机号")
+            return false
+        }
+
+        if (uploadFile.isNullOrEmpty()){
+            ToastUtils.showLong("请上传营业执照")
+            return false
+        }
+
+        return true
+    }
+
+}

+ 275 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/register/PersonalRegisterActivity.kt

@@ -0,0 +1,275 @@
+package cn.muchinfo.rma.view.base.login.register
+
+import android.app.Dialog
+import android.graphics.Typeface
+import android.os.Bundle
+import android.text.InputType
+import android.view.Gravity
+import android.widget.EditText
+import android.widget.TextView
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.autoWidget.tool.IdentifyTextUtils
+import cn.muchinfo.rma.view.autoWidget.utils.NumberUtils
+import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.future.trade.itemPaddingView
+import cn.muchinfo.rma.view.base.home.contract.verticalEmptyView
+import com.blankj.utilcode.util.ToastUtils
+import mtp.polymer.com.autowidget.dialog.createLoadingDialog
+import mtp.polymer.com.autowidget.utils.bindTaskStatus
+import org.jetbrains.anko.*
+
+/**
+ * 个人用户注册
+ */
+class PersonalRegisterActivity : BaseActivity<RegisterViewModel>(){
+
+    private var loadingDialog: Dialog? = null
+
+    //输入的手机号码
+    lateinit var phone_number : EditText
+
+    //输入的短信验证码
+    lateinit var version_code : EditText
+
+    //输入的登录密码
+    lateinit var login_password : EditText
+
+    //输入的推荐码
+    lateinit var recommended_code : EditText
+
+    //获取验证码按钮
+    lateinit var mail_btn: TextView
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        verticalLayout {
+            loadingDialog = createLoadingDialog(hintStr = "请求中")
+            loadingDialog?.bindTaskStatus(context, viewModel.loadingDialogStatus)
+            background = resources.getDrawable(R.color.white)
+            //页面标题
+            topBar {
+                commonLeftButton()
+                commonTitle {
+                    text = "个人用户注册"
+                }
+            }
+
+
+            verticalLayout {
+                background = resources.getDrawable(R.color.white)
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        text = "手机号码"
+                        textSizeAuto = 29
+                        textColorInt = R.color.hint_text_color
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(66))
+
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+
+                    textView {
+                        text = "+86"
+                        textSizeAuto = 31
+                        textColorInt = R.color.rma_black_33
+                    }.lparams(wrapContent, wrapContent){
+                        marginStart = autoSize(36)
+                    }
+                    editText {
+                        hintColorStr = "#DDDDDD"
+                        textColorInt = R.color.rma_black_33
+                        phone_number = this
+                        inputType = InputType.TYPE_CLASS_PHONE
+                        hint = "请输入手机号码"
+                        background = null
+                        textSizeAuto = 34
+                    }.lparams(0, wrapContent, 1f) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(100))
+            }.lparams(matchParent, autoSize(166))
+
+            itemPaddingView()
+
+            verticalLayout {
+                background = resources.getDrawable(R.color.white)
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        text = "短信验证码"
+                        textSizeAuto = 29
+                        textColorInt = R.color.hint_text_color
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(66))
+
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    editText {
+                        hintColorStr = "#DDDDDD"
+                        textColorInt = R.color.rma_black_33
+                        version_code = this
+                        hint = "请输入短信验证码"
+                        background = null
+                        textSizeAuto = 34
+                    }.lparams(0, wrapContent, 1f) {
+                        marginStart = autoSize(36)
+                    }
+
+                    textView {
+                        onThrottleFirstClick {
+                            if (!NumberUtils.isTelePhoneNoLong(
+                                    phone_number.getText().toString()
+                                )
+                            ) {  //是否是手机号
+                                ToastUtils.showLong("请输入正确的手机号码")
+                                return@onThrottleFirstClick
+                            }
+                            viewModel.sendCode(
+                                pnonenumber = phone_number.getText().toString()
+                            ){
+                                val utils = IdentifyTextUtils(mail_btn, context)  //初始化计时器
+                                utils.startTimer()
+                            }
+                        }
+                        mail_btn = this
+                        text = "获取验证码"
+                        textSizeAuto = 34
+                        textColorStr = "#FF9F30"
+                    }.lparams(wrapContent, wrapContent){
+                        marginEnd = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(100))
+            }.lparams(matchParent, autoSize(166))
+
+            itemPaddingView()
+
+            verticalLayout {
+                background = resources.getDrawable(R.color.white)
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        text = "登录密码"
+                        textSizeAuto = 29
+                        textColorInt = R.color.hint_text_color
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(66))
+
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    editText {
+                        hintColorStr = "#DDDDDD"
+                        textColorInt = R.color.rma_black_33
+                        login_password = this
+                        hint = "请设置登录密码"
+                        background = null
+                        textSizeAuto = 34
+                    }.lparams(0, wrapContent, 1f) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(100))
+            }.lparams(matchParent, autoSize(166))
+
+            itemPaddingView()
+
+            verticalLayout {
+                background = resources.getDrawable(R.color.white)
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    textView {
+                        text = "推荐码"
+                        textSizeAuto = 29
+                        textColorInt = R.color.hint_text_color
+                    }.lparams(wrapContent, wrapContent) {
+                        marginStart = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(66))
+
+                linearLayout {
+                    gravity = Gravity.CENTER_VERTICAL
+                    editText {
+                        hintColorStr = "#DDDDDD"
+                        textColorInt = R.color.rma_black_33
+                        recommended_code = this
+                        hint = "请输入推荐码(选填)"
+                        background = null
+                        textSizeAuto = 34
+                    }.lparams(0, wrapContent, 1f) {
+                        marginStart = autoSize(36)
+                    }
+
+                    imageView {
+                        imageResource = R.mipmap.qhj_sqcode
+                    }.lparams(autoSize(60), autoSize(60)){
+                        marginEnd = autoSize(36)
+                    }
+                }.lparams(matchParent, autoSize(100))
+            }.lparams(matchParent, autoSize(166))
+
+            verticalEmptyView()
+
+            linearLayout {
+                background = resources.getDrawable(R.color.white)
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    onThrottleFirstClick {
+                        if (check().not()){
+                            return@onThrottleFirstClick
+                        }
+
+                        viewModel.requestPersonalInfo(vcode = version_code.text.toString(),refernum = recommended_code.text.toString(),mobilephone = phone_number.text.toString(),loginpwd = login_password.text.toString()){
+                            finish()
+                        }
+                    }
+                    gravity = Gravity.CENTER
+                    backgroundDrawable = createRoundRectDrawable("#2794FF", 20)
+                    text = "注册"
+                    textSizeAuto = 38
+                    textColorInt = R.color.white
+                }.lparams(matchParent, autoSize(119)) {
+                    marginStart = autoSize(59)
+                    marginEnd = autoSize(59)
+                }
+
+            }.lparams(matchParent, autoSize(144)) {
+                gravity = Gravity.BOTTOM
+            }
+        }
+    }
+
+    //个人注册时提交
+    fun check() : Boolean{
+        if (phone_number.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入手机号")
+            return false
+        }
+        if (!NumberUtils.isTelePhoneNoLong(
+                phone_number.getText().toString()
+            )
+        ) {  //是否是手机号
+            ToastUtils.showLong("请输入正确的手机号码")
+            return false
+        }
+
+        if (version_code.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入短信验证码")
+            return false
+        }
+
+        if (login_password.text.toString().isNullOrEmpty()){
+            ToastUtils.showLong("请输入登录密码")
+            return false
+        }
+
+        return true
+
+    }
+
+}

+ 113 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/register/RegisterSelectActivity.kt

@@ -0,0 +1,113 @@
+package cn.muchinfo.rma.view.base.login.register
+
+import android.content.Intent
+import android.os.Bundle
+import android.view.Gravity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.main.addressmanagement.AddAddressManagementActivity
+import com.blankj.utilcode.util.ActivityUtils
+import org.jetbrains.anko.*
+
+/**
+ * 个人和企业注册的选择页
+ */
+class RegisterSelectActivity : BaseActivity<RegisterViewModel>(){
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        verticalLayout {
+            background = resources.getDrawable(R.color.main_hit_bg_color)
+            //页面标题
+            topBar {
+                commonLeftButton()
+                commonTitle {
+                    text = "注册"
+                }
+            }
+
+            textView {
+                text = "请选择您的身份"
+                textSizeAuto = 38
+                textColorInt = R.color.hint_text_color
+            }.lparams(wrapContent, wrapContent){
+                marginStart = autoSize(36)
+                topMargin = autoSize(100)
+            }
+
+            linearLayout {
+                onThrottleFirstClick {
+                    val intent = Intent()
+                    intent.setClass(context,PersonalRegisterActivity::class.java)
+                    ActivityUtils.startActivity(intent)
+                }
+                backgroundDrawable = createRoundRectDrawable("#FFB560", 20)
+                gravity = Gravity.CENTER_VERTICAL
+                imageView {
+                    imageResource = R.mipmap.qhj_register_people
+                }.lparams(autoSize(197), autoSize(197)){
+                    marginStart = autoSize(56)
+                }
+
+                textView {
+                    text = "个人用户"
+                    textSizeAuto = 45
+                    textColorInt = R.color.white
+                }.lparams(wrapContent, wrapContent){
+                    marginStart = autoSize(48)
+                }
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.qhj_more
+                }.lparams(autoSize(40), autoSize(40)){
+                    marginEnd = autoSize(60)
+                }
+            }.lparams(matchParent, autoSize(274)){
+                marginStart = autoSize(36)
+                marginEnd = autoSize(36)
+                topMargin = autoSize(55)
+            }
+
+
+            linearLayout {
+                onThrottleFirstClick {
+                    val intent = Intent()
+                    intent.setClass(context,EnterpriseRegisterActivity::class.java)
+                    ActivityUtils.startActivity(intent)
+                }
+                backgroundDrawable = createRoundRectDrawable("#84D1FF", 20)
+                gravity = Gravity.CENTER_VERTICAL
+                imageView {
+                    imageResource = R.mipmap.qhj_register_enterprise
+                }.lparams(autoSize(197), autoSize(197)){
+                    marginStart = autoSize(56)
+                }
+
+                textView {
+                    text = "企业用户"
+                    textSizeAuto = 45
+                    textColorInt = R.color.white
+                }.lparams(wrapContent, wrapContent){
+                    marginStart = autoSize(48)
+                }
+
+                emptyView()
+
+                imageView {
+                    imageResource = R.mipmap.qhj_more
+                }.lparams(autoSize(40), autoSize(40)){
+                    marginEnd = autoSize(60)
+                }
+            }.lparams(matchParent, autoSize(274)){
+                marginStart = autoSize(36)
+                marginEnd = autoSize(36)
+                topMargin = autoSize(55)
+            }
+        }
+    }
+
+}

+ 265 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/login/register/RegisterViewModel.kt

@@ -0,0 +1,265 @@
+package cn.muchinfo.rma.view.base.login.register
+
+import android.widget.Toast
+import androidx.lifecycle.MutableLiveData
+import cn.muchinfo.rma.global.data.VerificationCodeData
+import cn.muchinfo.rma.global.data.database.BannerEntity
+import cn.muchinfo.rma.netManage.base.ResponseCallback
+import cn.muchinfo.rma.netManage.utils.MyOkHttpUtils
+import cn.muchinfo.rma.view.autoWidget.tool.DesTools
+import cn.muchinfo.rma.view.base.BaseViewModel
+import cn.muchinfo.rma.view.base.app.Constant
+import com.blankj.utilcode.util.*
+import com.google.gson.Gson
+import com.zhy.http.okhttp.OkHttpUtils
+import com.zhy.http.okhttp.callback.StringCallback
+import mtp.polymer.com.autowidget.utils.TaskUiModel
+import okhttp3.Call
+
+/**
+ * 注册用的viewmodel
+ */
+class RegisterViewModel : BaseViewModel(){
+
+    /**
+     * 加载状态控制
+     */
+    val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
+
+    //企业用户注册时请求的图形验证码
+    val imageCode : MutableLiveData<String> = MutableLiveData()
+
+    //请求企业图形码时用到的时间戳
+    val timeMills : MutableLiveData<String> = MutableLiveData()
+
+    //企业用户注册时获取的图形验证码
+    fun getVerificationCode(){
+        val timesMills = TimeUtils.getNowMills().toString()
+        timeMills.postValue(timesMills)
+        OkHttpUtils.get()
+            .url(SPUtils.getInstance().getString(Constant.openApiUrl) + "/verifycode/vcode")
+            .addParams("type","0")
+            .addParams("sid",timesMills)
+            .build()
+            .execute(object : StringCallback() {
+                override fun onResponse(response: String?, id: Int) {
+                    val gson = Gson()
+                    val allData = gson.fromJson(response, VerificationCodeData::class.java)
+                    if (allData.success) {
+//                        loadingDialogStatus.value = TaskUiModel.success()
+                        imageCode.value = allData.msg
+                    } else {
+//                        loadingDialogStatus.value =
+//                            TaskUiModel.failed(Throwable(message = allData.msg))
+                    }
+                }
+
+                override fun onError(call: Call?, e: java.lang.Exception?, id: Int) {
+//                    loadingDialogStatus.value = TaskUiModel.failed(Throwable(message = e?.message))
+                    LogUtils.d("dhasfhkajhlka", e?.message)
+                }
+            })
+    }
+
+    //企业用户注册请求 isaudit 0-否,1-是 企业用户需要注册 userinfotype  1-个人,2-企业 sid 获取图形验证码时传的当前时间戳:
+    fun requestEnterpriseInfo(username : String,vcode : String,logincode : String,loginpwd : String,mobilephone : String,cardfrontphotourl : String,
+                              isSuccess: (isCompleted: Boolean) -> Unit){
+        OkHttpUtils.post()
+            .url(SPUtils.getInstance().getString(Constant.openApiUrl) + "/onlineopen/userInfo/add3")
+            .addParams("vcode",vcode)
+            .addParams("logincode",logincode)
+            .addParams("loginpwd", DesTools.myServiceAddPass(loginpwd))
+            .addParams("mobilephone",mobilephone)
+            .addParams("cardfrontphotourl",cardfrontphotourl)
+            .addParams("sid",timeMills.value)
+            .addParams("isaudit","1")
+            .addParams("userinfotype","2")
+            .addParams("openmode","5")
+            .build()
+            .execute(object : StringCallback() {
+                override fun onResponse(response: String?, id: Int) {
+                    LogUtils.d("dhasfhkajhlkasuccess", response)
+                    val gson = Gson()
+                    val allData = gson.fromJson(response, VerificationCodeData::class.java)
+                    if (allData.success) {
+                        loadingDialogStatus.value = TaskUiModel.success()
+                        isSuccess.invoke(true)
+                        imageCode.value = allData.msg
+                    } else {
+                        loadingDialogStatus.value =
+                            TaskUiModel.failed(Throwable(message = allData.msg))
+                    }
+                }
+
+                override fun onError(call: Call?, e: java.lang.Exception?, id: Int) {
+                    loadingDialogStatus.value = TaskUiModel.failed(Throwable(message = e?.message))
+                    LogUtils.d("dhasfhkajhlka", e?.message)
+                }
+            })
+    }
+
+    //企业用户注册请求 isaudit 0-否,1-是 企业用户需要注册 userinfotype  1-个人,2-企业 sid 获取图形验证码时传的当前时间戳:
+    fun requestPersonalInfo(vcode : String,refernum : String = "",loginpwd : String,mobilephone : String,
+                              isSuccess: (isCompleted: Boolean) -> Unit){
+
+        if (refernum.isNullOrEmpty()){
+            OkHttpUtils.post()
+                .url(SPUtils.getInstance().getString(Constant.openApiUrl) + "/onlineopen/userInfo/add3")
+                .addParams("vcode",vcode)
+                .addParams("loginpwd", DesTools.myServiceAddPass(loginpwd))
+                .addParams("mobilephone",mobilephone)
+                .addParams("isaudit","0")
+                .addParams("userinfotype","1")
+                .addParams("openmode","5")
+                .build()
+                .execute(object : StringCallback() {
+                    override fun onResponse(response: String?, id: Int) {
+                        LogUtils.d("dhasfhkajhlkasuccess", response)
+                        val gson = Gson()
+                        val allData = gson.fromJson(response, VerificationCodeData::class.java)
+                        if (allData.success) {
+                            loadingDialogStatus.value = TaskUiModel.success()
+                            isSuccess.invoke(true)
+                            imageCode.value = allData.msg
+                        } else {
+                            loadingDialogStatus.value =
+                                TaskUiModel.failed(Throwable(message = allData.msg))
+                        }
+                    }
+
+                    override fun onError(call: Call?, e: java.lang.Exception?, id: Int) {
+                        loadingDialogStatus.value = TaskUiModel.failed(Throwable(message = e?.message))
+                        LogUtils.d("dhasfhkajhlka", e?.message)
+                    }
+                })
+        }else{
+            OkHttpUtils.post()
+                .url(SPUtils.getInstance().getString(Constant.openApiUrl) + "/onlineopen/userInfo/add3")
+                .addParams("vcode",vcode)
+                .addParams("loginpwd", DesTools.myServiceAddPass(loginpwd))
+                .addParams("mobilephone",mobilephone)
+                .addParams("refernum",refernum)
+                .addParams("isaudit","0")
+                .addParams("userinfotype","1")
+                .addParams("openmode","5")
+                .build()
+                .execute(object : StringCallback() {
+                    override fun onResponse(response: String?, id: Int) {
+                        LogUtils.d("dhasfhkajhlkasuccess", response)
+                        val gson = Gson()
+                        val allData = gson.fromJson(response, VerificationCodeData::class.java)
+                        if (allData.success) {
+                            loadingDialogStatus.value = TaskUiModel.success()
+                            isSuccess.invoke(true)
+                            imageCode.value = allData.msg
+                        } else {
+                            loadingDialogStatus.value =
+                                TaskUiModel.failed(Throwable(message = allData.msg))
+                        }
+                    }
+
+                    override fun onError(call: Call?, e: java.lang.Exception?, id: Int) {
+                        loadingDialogStatus.value = TaskUiModel.failed(Throwable(message = e?.message))
+                        LogUtils.d("dhasfhkajhlka", e?.message)
+                    }
+                })
+        }
+
+    }
+
+
+    fun sendCode(pnonenumber : String,isSuccess: (isCompleted: Boolean) -> Unit){
+        OkHttpUtils.get()
+            .url(SPUtils.getInstance().getString(Constant.openApiUrl) + "/verifycode/identifyCode/" + pnonenumber)
+            .build()
+            .execute(object : StringCallback() {
+                override fun onResponse(response: String?, id: Int) {
+                    LogUtils.d("dhasfhkajhlka", response)
+                    isSuccess.invoke(true)
+//                    val gson = Gson()
+//                    val allData = gson.fromJson(response, VerificationCodeData::class.java)
+//                    if (allData.success) {
+////                        loadingDialogStatus.value = TaskUiModel.success()
+//                        imageCode.value = allData.msg
+//                    } else {
+////                        loadingDialogStatus.value =
+////                            TaskUiModel.failed(Throwable(message = allData.msg))
+//                    }
+                }
+
+                override fun onError(call: Call?, e: java.lang.Exception?, id: Int) {
+//                    loadingDialogStatus.value = TaskUiModel.failed(Throwable(message = e?.message))
+                    LogUtils.d("dhasfhkajhlka", e?.message)
+                }
+            })
+    }
+
+
+    //        Toast.makeText(PhoneLoginActivity.this,DesTools.myServiceAddPass(phone_text.getText().toString()),Toast.LENGTH_LONG).show();
+
+    fun fas(){
+//
+//        OkHttpUtils.get()
+//            .url(AddressConfig.AUTH_GO_URL + "/HSBY/QueryHsbyTopGoodses?marketIDs=" + touristCheckString(doTourist = {
+//                if(touristMarketId == null) "16201" else touristMarketId.marketid
+//            }, unTourist = {
+//                marketid
+//            }))
+//            .addParams("marketIDs",marketid)
+//            .addParams("descProvinceID",DescProvinceID)
+//            .addParams("descCityID",cityId)
+//            .addHeader("Authorization", SPUtils.getInstance().getString("token"))
+//            .build()
+//            .execute(object : StringCallback() {
+//                override fun onResponse(response: String?, id: Int) {
+//                    LogUtils.e("dhasfhkajhlka22222",response + "——————" + DescProvinceID + "+++" + cityId)
+//                    val gson = Gson()
+//                    val allData = gson.fromJson(response, HomeSellResultData::class.java)
+//                    if (allData.code == 200) {
+//                        loadingDialogStatus.value = TaskUiModel.success()
+//                        homeList.value = allData.getData()
+//                        setAllSubList(allData.getData())
+//                    } else {
+//                        loadingDialogStatus.value = TaskUiModel.failed(Throwable(message = allData.msg))
+//                    }
+//                }
+//
+//                override fun onError(call: Call?, e: java.lang.Exception?, id: Int) {
+//                    loadingDialogStatus.value = TaskUiModel.failed(Throwable(message = e?.message))
+//                    LogUtils.d("dhasfhkajhlka", e?.message)
+//                }
+//            })
+//        //请求验证码
+//        OkHttpUtils.postString()
+//            .url(AddressConfig.AUTH_LOGIN_ADDRESS.toString() + "/user/smsvcode")
+//            .content(json.toJSONString())
+//            .mediaType(okhttp3.MediaType.parse("application/json; charset=utf-8")) //                .addParams("mobile",DesTools.myServiceAddPass(area_code.getText().toString().trim() + phone_text.getText().toString().trim()))
+//            .build()
+//            .execute(
+//                object : StringCallback() {
+//                    override fun onError(call: Call, e: Exception, id: Int) {
+//
+//                    }
+//
+//                    override fun onResponse(response: String, id: Int) {
+//
+//                        //这里也要加个判断
+////            val identifyData: IdentifyData? = JSON.parseObject(response, IdentifyData::class.java)
+////            if (identifyData != null) {
+////                if (identifyData.getSuccess().equals("true")) {
+////                    isShowInvitation.postValue(identifyData.getIsShowRefer())
+////                    Toast.makeText(
+////                        this@PhoneLoginActivity,
+////                        identifyData.getMsg(),
+////                        Toast.LENGTH_LONG
+////                    ).show()
+////                } else {
+////                    showToast(R.string.identify_request_error)
+////                }
+////            }
+//                    }
+//                })
+    }
+
+
+}

+ 2 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/procurement/ContractDetailActivity.kt

@@ -312,7 +312,7 @@ class ContractDetailsUI(
                     title = "定价类型",
                     content = ViewEnumUtils.getPriceType(data.pricetype ?: "")
                 ),
-                ContractDetailsData(title = "期货合约", content = data.goodsname ?: ""),
+                ContractDetailsData(title = "点价合约", content = data.goodsname ?: ""),
                 ContractDetailsData(title = "升贴水", content = data.pricemove ?: ""),
                 ContractDetailsData(title = "标仓系数", content = data.convertfactor ?: ""),
                 ContractDetailsData(
@@ -335,6 +335,7 @@ class ContractDetailsUI(
                 ContractDetailsData(title = "业务员",content = data.saleuserlogincode?.isBlankString() ?: ""),
                 ContractDetailsData(title = "跟单员",content = data.meruserlogincode?.isBlankString() ?: ""),
                 ContractDetailsData(title = "交易用户",content = data.tradeusername?.isBlankString() ?: ""),
+                ContractDetailsData(title = "备注",content = data.remark?.isBlankString() ?: ""),
                 ContractDetailsData(title = "",content =  ""),
                 ContractDetailsData(title = "",content =   ""),
                 ContractDetailsData(title = "",content =   ""),

BIN
RMA/app/src/main/res/mipmap-xhdpi/qhj_more.png


BIN
RMA/app/src/main/res/mipmap-xhdpi/qhj_register_enterprise.png


BIN
RMA/app/src/main/res/mipmap-xhdpi/qhj_register_people.png


BIN
RMA/app/src/main/res/mipmap-xhdpi/qhj_sqcode.png


+ 1 - 0
RMA/app/src/main/res/values/colors.xml

@@ -96,4 +96,5 @@
     <color name="qhj_title_hint_color">#AED6F0</color>
     <color name="qhj_yellow_hint_color">#30FF6600</color>
     <color name="qhj_pick_color">#BD7859</color>
+    <color name="qhj_update_image_bg">#F5F7F7</color>
 </resources>