From 281f7d0b8a363a3ed4d6f83bb5fa22bb6d0340f3 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 08 一月 2021 16:20:13 +0800
Subject: [PATCH] 2021-01-08 1.更新
---
Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs | 147 ++++++++++++++---------------
Crabtree/SmartHome/HDL/Common/HttpUtil/IMessageCommon.cs | 8
Crabtree/ON.Ios/AppDelegate.cs | 2
Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs | 17 ++
Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs | 8
Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs | 49 +++++++++
Crabtree/SmartHome/HDL/Common/Constant.cs | 34 ++----
Crabtree/.vs/SmartHome/xs/UserPrefs.xml | 13 +-
Crabtree/SmartHome/HDL/Common/HttpUtil/NewApiRes.cs | 8 +
README.md | 3
10 files changed, 173 insertions(+), 116 deletions(-)
diff --git a/Crabtree/.vs/SmartHome/xs/UserPrefs.xml b/Crabtree/.vs/SmartHome/xs/UserPrefs.xml
index 405c751..c40d5b5 100644
--- a/Crabtree/.vs/SmartHome/xs/UserPrefs.xml
+++ b/Crabtree/.vs/SmartHome/xs/UserPrefs.xml
@@ -1,10 +1,9 @@
锘�<Properties StartupConfiguration="{1D83BF28-BA88-4152-BA41-D7EFE90A5437}|Default">
<MonoDevelop.Ide.ItemProperties.ON.Droid PreferredExecutionTarget="Android.822QECU5228FU" />
- <MonoDevelop.Ide.Workbench ActiveDocument="SmartHome/UI/SimpleControl/R.cs">
+ <MonoDevelop.Ide.Workbench ActiveDocument="SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs">
<Files>
- <File FileName="SmartHome/HDL/Common/HttpUtil/ErrorCode.cs" Line="74" Column="53" />
- <File FileName="SmartHome/HDL/Common/HttpUtil/IMessageCommon.cs" Line="166" Column="76" />
- <File FileName="SmartHome/UI/SimpleControl/R.cs" Line="1052" Column="26" />
+ <File FileName="SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs" Line="1" Column="1" />
+ <File FileName="SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs" Line="1" Column="1" />
</Files>
<Pads>
<Pad Id="ProjectPad">
@@ -18,7 +17,11 @@
</Node>
<Node name="UI" expanded="True">
<Node name="SimpleControl" expanded="True">
- <Node name="R.cs" selected="True" />
+ <Node name="Phone" expanded="True">
+ <Node name="Guide" expanded="True">
+ <Node name="GuideSettingGateway.cs" selected="True" />
+ </Node>
+ </Node>
</Node>
</Node>
</Node>
diff --git a/Crabtree/ON.Ios/AppDelegate.cs b/Crabtree/ON.Ios/AppDelegate.cs
index b7c99bd..6f6ac77 100644
--- a/Crabtree/ON.Ios/AppDelegate.cs
+++ b/Crabtree/ON.Ios/AppDelegate.cs
@@ -76,9 +76,9 @@
AppCenter.Start ("44cbdfbf-d33e-4e92-a795-1c4452e54d3e", typeof (Analytics), typeof (Crashes));
Utlis.WriteLine ("FinishedLaunching");
//Shared.Application.IsGpsEnable = false;
+ //Shared.Application.IsUsePingFang = true;
base.FinishedLaunching (application, launchOptions);
-
SharedMethod.SharedMethod.sharedApp = application;
diff --git a/Crabtree/SmartHome/HDL/Common/Constant.cs b/Crabtree/SmartHome/HDL/Common/Constant.cs
index e006909..33bc993 100644
--- a/Crabtree/SmartHome/HDL/Common/Constant.cs
+++ b/Crabtree/SmartHome/HDL/Common/Constant.cs
@@ -7,26 +7,7 @@
/// </summary>
public class Constant
{
- /// <summary>
- /// 鐢ㄦ埛鍗忚
- /// </summary>
- public const string URL_USERAGREEMENT = "https://developer.hdlcontrol.com/HDLOnPlusUserAgreement.html";
- /// <summary>
- /// 闅愮鏀跨瓥
- /// </summary>
- public const string URL_PRIVACYPOLICY = "https://developer.hdlcontrol.com/HDLOnPlusPrivacyPolicy.html";
- /// <summary>
- /// 鎶�鏈敮鎸佺數璇濆彿鐮�
- /// </summary>
- public const string SUPPORT_TELEPHONENUMBER = "4008558535";
- /// <summary>
- /// 鎶�鏈敮鎸侀偖绠卞湴鍧�
- /// </summary>
- public const string SUPPORT_EMAIL = "hdltickets@hdlautomation.com";
- /// <summary>
- /// 鑻规灉鍟嗗簵鍦板潃
- /// </summary>
- public const string URL_APPSTORE = "https://apps.apple.com/cn/app/on/id1532353432";
+
/// <summary>
/// 瑁佸壀鍥剧墖鐨勯珮澶у皬
@@ -286,5 +267,18 @@
}
+ /// <summary>
+ /// 缃戝叧绫诲瀷
+ /// </summary>
+ public enum GatewayType
+ {
+ BUSUDPGATEWAY = 1,
+ AGATEWAY,
+ ZIGBEEGATEWAY,
+ KNXGATEWAY,
+
+ }
+
+
#endregion
}
diff --git a/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs b/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs
index 2b40b7e..97fd9d3 100644
--- a/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs
+++ b/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs
@@ -65,13 +65,9 @@
}
return revertObj.Code;
}
-
#endregion
-
#region 娉ㄥ唽銆佺櫥褰曢儴鍒�
-
-
/// <summary>
/// 閫氱敤 鍙戦�侀獙璇佺爜鏂规硶
/// </summary>
@@ -488,6 +484,17 @@
}
/// <summary>
+ /// 缁戝畾缃戝叧
+ /// </summary>
+ /// <param name="mac"></param>
+ /// <returns></returns>
+ public ResponsePackNew BindGateway (BindGatewayObj newGateway)
+ {
+ var requestJson = HttpUtil.GetSignRequestJson (newGateway);
+ return HttpUtil.RequestHttpsPostFroHome (NewAPI.API_POST_BindGateway, requestJson);
+ }
+
+ /// <summary>
/// 鑾峰彇鍒锋柊褰撳墠浣忓畢鐨勭綉鍏冲垪琛�
/// </summary>
public string GetHomeGatewayList()
@@ -552,6 +559,8 @@
return revertObj.Code;
}
+
+
/// <summary>
/// 鑾峰彇浣忓畢涓嬬殑鎴愬憳璐﹀彿
/// </summary>
diff --git a/Crabtree/SmartHome/HDL/Common/HttpUtil/IMessageCommon.cs b/Crabtree/SmartHome/HDL/Common/HttpUtil/IMessageCommon.cs
index 105bdbc..c86f5b8 100644
--- a/Crabtree/SmartHome/HDL/Common/HttpUtil/IMessageCommon.cs
+++ b/Crabtree/SmartHome/HDL/Common/HttpUtil/IMessageCommon.cs
@@ -62,10 +62,10 @@
//dicMsg = new Dictionary<string, Dictionary<string, int>>();
#region 鍏遍�氶敊璇爜
stateCodeDic = new Dictionary<string, int>();
- //涓庢湇鍔″櫒閫氳澶辫触
- stateCodeDic ["NETWORK_ERROR"] = MyInternationalizationString.FailedRequestServer;
- //鏁版嵁寮傚父
- stateCodeDic ["DATA_EXCEPTION"] = MyInternationalizationString.DataExceptionPleaseTryAgain;
+ ////涓庢湇鍔″櫒閫氳澶辫触
+ //stateCodeDic ["NETWORK_ERROR"] = MyInternationalizationString.FailedRequestServer;
+ ////鏁版嵁寮傚父
+ //stateCodeDic ["DATA_EXCEPTION"] = MyInternationalizationString.DataExceptionPleaseTryAgain;
//涓庢湇鍔″櫒閫氳澶辫触
stateCodeDic [StateCode.NETWORK_ERROR] = MyInternationalizationString.FailedRequestServer;
//鏁版嵁寮傚父
diff --git a/Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs b/Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs
index 391cc3a..bab5115 100644
--- a/Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs
+++ b/Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs
@@ -162,10 +162,10 @@
#endregion
#region 鈻� GatewayCluster -- 缃戝叧___________________________
- ///// <summary>
- ///// 缁戝畾缃戝叧鍒颁綇瀹�
- ///// </summary>
- //public const string API_POST_BindGateway = "/home-wisdom/app/gateway/bindGateway";
+ /// <summary>
+ /// 缁戝畾缃戝叧鍒颁綇瀹�
+ /// </summary>
+ public const string API_POST_BindGateway = "/home-wisdom/app/gateway/bindGateway";
/// <summary>
/// 鑾峰彇浣忓畢缃戝叧鍒嗛〉
/// </summary>
diff --git a/Crabtree/SmartHome/HDL/Common/HttpUtil/NewApiRes.cs b/Crabtree/SmartHome/HDL/Common/HttpUtil/NewApiRes.cs
index df4027d..ed8d757 100644
--- a/Crabtree/SmartHome/HDL/Common/HttpUtil/NewApiRes.cs
+++ b/Crabtree/SmartHome/HDL/Common/HttpUtil/NewApiRes.cs
@@ -519,6 +519,14 @@
/// 璁惧鍙�
/// </summary>
public int deviceId;
+ /// <summary>
+ /// 鏄惁寮哄埗鎹㈢粦Mac
+ /// </summary>
+ public bool swapGateway = true;
+ /// <summary>
+ /// 绂佹澶氱綉鍏筹紝淇濊瘉涓�涓綇瀹呬笅鍙湁涓�涓綉鍏�
+ /// </summary>
+ public bool disableMoreGw = true;
}
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs
index 3462211..ea6871a 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs
@@ -284,6 +284,8 @@
};
EventHandler<MouseEventArgs> eHandler = (sender, e) => {
+ //璺宠浆涔嬪墠鍏堢粦瀹欰PP
+
MainPage.Loading.Start ("Please wait...");
bool needHide = true;
new System.Threading.Thread (() => {
@@ -300,8 +302,14 @@
bool goNext = false;
System.Threading.Tasks.Task.Run (() => {
try {
-
+ //
goNext = CheckIfGoNext (common);
+ if (goNext) {
+ //鍏堥噸缃�
+ goNext = false;
+ //缃戝叧鐗堟湰绗﹀悎瑕佹眰锛屽垽鏂槸鍚︾粦瀹氱綉鍏虫垚鍔�,缁戝畾鎴愬姛浜嗘墠鑳借繘琛屼笅涓�姝�
+ goNext = CheckIfBindGatewaySuccess (common);
+ }
} catch (Exception ex) {
Utlis.WriteLine (ex.Message);
@@ -342,7 +350,46 @@
}
}
+ /// <summary>
+ /// 妫�娴嬫槸鍚︾粦瀹氱綉鍏虫垚鍔�
+ /// </summary>
+ /// <returns></returns>
+ static bool CheckIfBindGatewaySuccess (GatewayBase gatewayBase)
+ {
+ try {
+ if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
+ //涔嬪墠缁戝畾杩囩綉鍏筹紝骞朵笖鍜屽綋鍓嶆悳绱㈠埌鍒扮綉鍏充竴鑷�
+ if (UserConfig.Instance.HomeGateway.mac.ToUpper () == gatewayBase.MAC.Replace (".", "").ToUpper ()) {
+ return true;
+ }
+ }
+ var gatewayMAC = gatewayBase.MAC.Replace (".", "");
+ //閲嶆柊缁戝畾
+ var bindGatewayObj = new BindGatewayObj () {
+ homeId = UserConfig.Instance.CurrentRegion.Id,
+ subnetId = gatewayBase.sceneID,
+ deviceId = gatewayBase.DeviceID,
+ gatewayType = GatewayType.BUSUDPGATEWAY.ToString (),
+ mac = gatewayMAC
+ };
+ var revertObj = HttpServerRequest.Current.BindGateway (bindGatewayObj);
+ if (revertObj.Code == StateCode.SUCCESS) {
+ var homeGatewayInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<HomeGatewayInfo> (revertObj.Data.ToString ());
+ if (homeGatewayInfo != null && !string.IsNullOrEmpty (homeGatewayInfo.gatewayId)) {
+ //缁戝畾缃戝叧鎴愬姛锛屽苟涓旀垚鍔熻幏鍙栧埌鏂扮粦瀹氱殑gatewayId
+ UserConfig.Instance.HomeGateway = homeGatewayInfo;
+ UserConfig.Instance.SaveUserConfig ();
+ return true;
+ }
+ } else {
+ IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
+ }
+ } catch {
+
+ }
+ return false;
+ }
static bool inThisView = false;
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
index bb7b93a..2f278d8 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
@@ -713,7 +713,7 @@
return;
}
}
- BindGatewaysNew ();
+ GotoHomePage ();
}
} catch (Exception ex) {
Utlis.WriteLine (ex.Message);
@@ -914,80 +914,73 @@
}
}
- BindGatewaysNew ();
-
+ GotoHomePage ();
}
- /// <summary>
- /// Gateway setting succeeded锛宒ata up.Please wait...
- /// 缁戝畾Mac(鍗板害鐗�)
- /// </summary>
- void BindGatewaysNew ()
- {
- Application.RunOnMainThread (() => {
- MainPage.Loading.Start ("Gateway setting succeeded锛宒ata up. Please wait...");
- });
- IO.FileUtils.SaveEquipmentMessage (gatewayDeicve);
- var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
+ ///// <summary>
+ ///// Gateway setting succeeded锛宒ata up.Please wait...
+ ///// 缁戝畾Mac(鍗板害鐗�)
+ ///// </summary>
+ //void BindGatewaysNew ()
+ //{
+ // //Application.RunOnMainThread (() => {
+ // // MainPage.Loading.Start ("Gateway setting succeeded锛宒ata up. Please wait...");
+ // //});
+ // //IO.FileUtils.SaveEquipmentMessage (gatewayDeicve);
+ // //var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
- //璧版柊鏇存柊缁戝畾鎺ュ彛
- var mBindMacObj = new BindMacObj () {
- LoginAccessToken = MainPage.LoginUser.LoginTokenString,
- HomeId = UserConfig.Instance.CurrentRegion.Id,
- MAC = gatewayMAC
+ // ////璧版柊鏇存柊缁戝畾鎺ュ彛
+ // //var mBindMacObj = new BindMacObj () {
+ // // LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+ // // HomeId = UserConfig.Instance.CurrentRegion.Id,
+ // // MAC = gatewayMAC
- };
-
- string urlHead = MainPage.RequestHttpsHost;
- if (mBindMacObj.IsOtherAccountCtrl) {
- urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
- mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
- }
+ // //};
+
+ // //string urlHead = MainPage.RequestHttpsHost;
+ // //if (mBindMacObj.IsOtherAccountCtrl) {
+ // // urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
+ // // mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
+ // //}
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
+ // //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
- //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
- var respone = MainPage.RequestHttps (API.BindMac, requestJson, urlHead);
- if (respone.StateCode.ToUpper () != StateCode.SUCCESS) {
- GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
- Application.RunOnMainThread (() => {
- new Alert ("", $"Failed to bind Mac address! {ErrorCode.Reason }{respone.StateCode}", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
- new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- }
- });
- return;
- }
- //GetNowHomeGateway ();
- AddMacToUserConfig (gatewayMAC);
+ // ////var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
+ // //var respone = MainPage.RequestHttps (API.BindMac, requestJson, urlHead);
+ // //if (respone.StateCode.ToUpper () != StateCode.SUCCESS) {
+ // // GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
+ // // Application.RunOnMainThread (() => {
+ // // new Alert ("", $"Failed to bind Mac address! {ErrorCode.Reason }{respone.StateCode}", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ // // if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
+ // // new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ // // }
+ // // });
+ // // return;
+ // //}
+ // //GetNowHomeGateway ();
- }
+ // var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
+ // AddMacToUserConfig (gatewayMAC);
+
+ //}
/// <summary>
- /// 淇敼鍒囨崲鏈湴浣忓畢 缃戝叧
+ /// 璺宠浆涓婚〉闈�
/// </summary>
- void AddMacToUserConfig (string gatewayMAC)
+ void GotoHomePage ()
{
-
- UserConfig.Instance.GatewayMAC = gatewayMAC;
- UserConfig.Instance.SaveUserConfig ();
MainPage.LoginUser.LastTime = DateTime.Now;
Application.RunOnMainThread (() => {
- bodyView.RemoveAll ();
+ this.RemoveFromParent ();
//MainPage.WiFiStatus = "CrabtreeAdd/WiFi.png";
UserMiddle.Init (true);
MainPage.WiFiStatus = "CrabtreeAdd/WiFi.png";
UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus;
});
-
- //Utlis.ShowAppLinkStatus (AppLinkStatus.WiFi);
-
}
-
-
///// <summary>
@@ -1075,35 +1068,35 @@
//}
- /// <summary>
- /// 缁戝畾澶辫触涔嬪悗锛屾煡璇㈠埛鏂颁竴娆″綋鍓嶄綇瀹� 缃戝叧鍒楄〃
- /// 2020-01-11
- /// </summary>
- void GetNowHomeGatewayAfterBindMacFailed ()
- {
+ ///// <summary>
+ ///// 缁戝畾澶辫触涔嬪悗锛屾煡璇㈠埛鏂颁竴娆″綋鍓嶄綇瀹� 缃戝叧鍒楄〃
+ ///// 2020-01-11
+ ///// </summary>
+ //void GetNowHomeGatewayAfterBindMacFailed ()
+ //{
- var requestObj3 = new GetSingleHomeGatewayPaggerObj ();
- requestObj3.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
- requestObj3.ReqDto.HomeId = UserConfig.Instance.CurrentRegion.Id;
- requestObj3.ReqDto.PageSetting.Page = 1;
- requestObj3.ReqDto.PageSetting.PageSize = 10;
- string urlHead = MainPage.RequestHttpsHost;
- if (requestObj3.IsOtherAccountCtrl) {
- urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
- requestObj3.ReqDto.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
- }
+ // var requestObj3 = new GetSingleHomeGatewayPaggerObj ();
+ // requestObj3.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
+ // requestObj3.ReqDto.HomeId = UserConfig.Instance.CurrentRegion.Id;
+ // requestObj3.ReqDto.PageSetting.Page = 1;
+ // requestObj3.ReqDto.PageSetting.PageSize = 10;
+ // string urlHead = MainPage.RequestHttpsHost;
+ // if (requestObj3.IsOtherAccountCtrl) {
+ // urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
+ // requestObj3.ReqDto.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
+ // }
- var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3);
- var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3, urlHead);
- if (revertObj3.StateCode.ToUpper () == StateCode.SUCCESS) {
- var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ());
- //2020-01-11
- UserConfig.Instance.SetNowHomeGateways (infoResult.PageData);
+ // var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3);
+ // var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3, urlHead);
+ // if (revertObj3.StateCode.ToUpper () == StateCode.SUCCESS) {
+ // var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ());
+ // //2020-01-11
+ // UserConfig.Instance.SetNowHomeGateways (infoResult.PageData);
- }
+ // }
- }
+ //}
#region 2020-07-02
/// <summary>
diff --git a/README.md b/README.md
index 7a20f3b..a1019e5 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,9 @@
CrabtreeOn
+澶囨敞锛�
+app鐩墠鏈湴閫氫俊寮�鍚簡鍔犲瘑妯″紡锛屽瘑鐮佷负浣忓畢ID鍓�16浣嶏紝鐐瑰嚮鎼滅储鍒扮殑缃戝叧鏃朵細鑷姩鍐欏姞瀵嗗瘑鐮佺粰鏃犵嚎缃戝叧銆�
+
2020
瀹㈡埛鐨勬柊闇�姹傝褰�
1.瀵嗙爜瑙勫垯锛氬瘑鐮佸繀椤绘槸8-20涓瓧绗︼紝鍖呮嫭鑷冲皯涓�涓ぇ灏忓啓瀛楁瘝锛屾暟瀛楀拰鐗规畩瀛楃銆�
--
Gitblit v1.8.0