Jelajahi Sumber

#IQRV #comment [CSS] 添加短按钮的属性

gifur 4 tahun lalu
induk
melakukan
8319bdea6f

+ 5 - 0
addin/res/ManagerDesktop/css/emui-style.css

@@ -522,6 +522,11 @@ float: left;
 font-size: 14px;
 width: 340px;
 }
+.controls_short {
+    float: left;
+    font-size: 14px;
+    width: 260px;
+}
 .controls-content {
 margin-top: 8px;
 }

+ 7 - 4
addin/res/ManagerDesktop/guide.html

@@ -391,7 +391,8 @@
                                 </div>
                                 <div class="controls text-left">
                                     <div id="gui_adapter_config_vendor" class="select_on_normal btn_disabled"
-                                        onclick="SelectItem(this)" value="*">全部</div>
+                                        onclick=""
+                                        value="*">全部</div>
                                     <div id="gui_adapter_config_vendor_list" class="select_list hide">
                                         <div id="gui_adapter_config_vendor_list_item_0" option="CW" class="select_medium"
                                         onclick="VendorSelectChanged('CW')">
@@ -492,10 +493,12 @@
                             </div>
                             
                             <div class="clearboth" style="padding-top:30px">
-                                <div class="controls" style="margin-left: 140px;"><button class="btn_normal_short"
+                                <div class="controls_short" style="margin-left: 100px;"><button class="btn_normal_short"
                                         id="guide_adapter_config_test">测试</button></div>
-                                <div class="controls"><button class="btn_normal_short"
-                                    id="guide_adapter_config_next">保存</button></div>
+                                <div class="controls_short"><button class="btn_normal_short"
+                                    id="guide_adapter_config_save">保存</button></div>
+                                    <div class="controls_short"><button class="btn_normal_short"
+                                        id="guide_adapter_config_next">下一步</button></div>
                             </div>
                         </div>
                     </div>

+ 157 - 9
addin/res/ManagerDesktop/js/guide.js

@@ -41,6 +41,24 @@ var VENDOR = {
 var globalFinishedFlag = false;
 var globalInterestRootFlag = false;
 
+var globalAdapterFileNameList = [];
+var globalAdapterFileNameStatus = [];
+var globalAdapterOpenParamPort = [];
+var globalAdapterOpenParamBaudrate = [];
+
+var globalLastRemberAdapterName = '';
+var globalLastRemberAdapterConfigState = false;
+
+
+function clearAdapterSelectedValue()
+{
+    $('#gui_adapter_config_adapter').empty();
+    $('#gui_adapter_config_adapter').attr("value", '');
+
+    $('#guide_adapter_config_port_input').val('');
+    $('#guide_adapter_config_baudrate_input').val('');
+}
+
 
 function generateAdapterSelect(devices, status, select_id) {
     var deviceLength = 0;
@@ -85,28 +103,47 @@ function FulfillDevAdapterFileList(device, vendor, root_or_not, flag)
     req.version="";
     req.batch="";
 
+    globalAdapterFileNameList = [];
+    globalAdapterFileNameStatus = [];
+    globalAdapterOpenParamPort = [];
+    globalAdapterOpenParamBaudrate = [];
+
     RVC.DeviceControlEntityCtrl.GetVendorFileList(req, function(ret) {
         if(ret.errorCode === 0) {
             let result = JSON.parse(ret[RVC.EntityController.sigResponseUUID])
             if(result.result == 0) {
-                var libs = [];
-                var status = [];
+                
+                console.log('=============================');
                 for (var n = 0; n < result.filenames.length; n++) {
-                    console.log(result.filenames[n] + ' ' + result.status[n]);
-                    libs.push(result.filenames[n]);
-                    status.push(result.status[n]);
+                    console.log(result.filenames[n] + ' ' + result.status[n] + ' ' + result.port[n] + ' ' + result.baudrate[n]);
+                    globalAdapterFileNameList.push(result.filenames[n]);
+                    globalAdapterFileNameStatus.push(result.status[n]);
+                    globalAdapterOpenParamPort.push(result.port[n]);
+                    globalAdapterOpenParamBaudrate.push(result.baudrate[n]);
+                    if(globalLastRemberAdapterName !== '' && globalLastRemberAdapterName === globalAdapterFileNameList[n]) {
+                        globalLastRemberAdapterConfigState = (globalAdapterFileNameStatus[n] & 0x2);
+                    }
                 }
-                generateAdapterSelect(libs, status, 'gui_adapter_config_adapter_list');
+                clearAdapterSelectedValue();
+                generateAdapterSelect(globalAdapterFileNameList, globalAdapterFileNameStatus, 'gui_adapter_config_adapter_list');
                 if(typeof flag !== 'undefined') {
                     utilShowToast("已刷新");
                 }
 
+                //test
+                if(result.filenames.length == 1 && globalInterestRootFlag && device !== '' && device != '*') {
+                    FulfillAdapterCurrentSelect(globalAdapterFileNameList[0], (globalAdapterFileNameStatus[0] & 0x2));
+                } else if(globalLastRemberAdapterName !== '') {
+                    FulfillAdapterCurrentSelect(globalLastRemberAdapterName, globalLastRemberAdapterConfigState);
+                }
+                //test_end
+
             } else if(typeof flag !== 'undefined') {
                 utilStartAlertDialog("操作失败:[" + result.result + "] " + result.msg);
             } else {
                 console.error("操作失败:[" + result.result + "] " + result.msg);
             }
-        } else if(typeof flag !== 'undefined'){
+        } else if(typeof flag !== 'undefined') {
             RVC.DeviceControlEntityCtrl.commErrorCallback(ret);
         } else {
             console.error("操作失败! ErrorCode: " + ErrorCodeStringfy(ret.errorCode));
@@ -121,6 +158,40 @@ function LoadDeviceAdaptersWithEvent(flag)
     FulfillDevAdapterFileList(deviceName, vendorName, globalInterestRootFlag, flag);
 }
 
+function AdapterSelectChange(name)
+{
+    $('#guide_adapter_config_port_input').val('');
+    $('#guide_adapter_config_baudrate_input').val('');
+
+    for(var n=0; n < globalAdapterFileNameList.length; n++) {
+        if(globalAdapterFileNameList[n] === name) {
+            if((globalAdapterFileNameStatus[n] & 0x2) /**root.ini 配置 */) {
+                $('#guide_adapter_config_port_input').val('' + globalAdapterOpenParamPort[n]);
+                $('#guide_adapter_config_baudrate_input').val('' + globalAdapterOpenParamBaudrate[n]);
+            }
+            setSaveBtnStatus(!(globalAdapterFileNameStatus[n] & 0x2));
+            break;
+
+        }  
+    }
+}
+
+function FulfillAdapterCurrentSelect(value, configed)
+{
+    if(value === '') {
+        clearAdapterSelectedValue();
+    } else {
+        if(configed) {
+            $('#gui_adapter_config_adapter').html(value + '&nbsp;(当前配置)');
+        } else {
+            $('#gui_adapter_config_adapter').html(value);
+        }
+        $('#gui_adapter_config_adapter').attr('value', value);
+        AdapterSelectChange(value);
+    }
+}
+
+//正式环境该参数不可选
 function VendorSelectChanged(name)
 {
     var deviceName = $('#gui_adapter_config_device').attr('value');
@@ -134,9 +205,25 @@ function DeviceSelectChange(name)
     FulfillDevAdapterFileList(name, vendorName, globalInterestRootFlag, true);
 }
 
-function AdapterSelectChange(name)
+function setBtnStatus(enable, classID)
 {
-    //LoadDeviceAdaptersWithEvent(true);
+    if (enable && $('#' + classID).hasClass('btn_disabled')) {
+        $('#' + classID).attr('disabled', false);
+        $('#' + classID).removeClass('btn_disabled');
+    } else if(!enable && !$('#' + classID).hasClass('btn_disabled')) {
+        $('#' + classID).attr('disabled', true);
+        $('#' + classID).addClass('btn_disabled');
+    }
+}
+
+function setTestBtnStatus(enable) {
+
+    setBtnStatus(enable, 'guide_adapter_config_test')
+}
+
+function setSaveBtnStatus(enable) {
+
+    setBtnStatus(enable, 'guide_adapter_config_save')
 }
 
 function InterestRootSwitch(flag) 
@@ -146,6 +233,9 @@ function InterestRootSwitch(flag)
     } else {
         globalInterestRootFlag = false;
     }
+
+    setSaveBtnStatus(!globalInterestRootFlag);
+
     if(typeof flag == 'undefined')
         LoadDeviceAdaptersWithEvent(true);
     else 
@@ -167,6 +257,7 @@ $(function () {
         req.array1 = [0];
         req.array2 = [''];
         req.additional = 0;
+        req.options = 0;
         req.restartApp = true;
         req.restartPC = false;
 
@@ -257,6 +348,7 @@ $(function () {
         req.param1 = parseInt(port, 10);
         req.param2 = 0;
         req.param3 = server_ip;
+        req.options = 0;
         req.additional = 0;
         req.restartApp = false;
         req.restartPC = false;
@@ -296,6 +388,7 @@ $(function () {
         req.param5 = '';
         req.array1 = [0];
         req.array2 = [''];
+        req.options = 0;
         req.additional = 0;
         req.restartApp = false;
         req.restartPC = false;
@@ -463,6 +556,7 @@ $(function () {
         req.currStep = CONST.DeployStep_MediaConfig;
         req.nextStep = CONST.DeployStep_FetchCenterSettings;
         req.additional = 1; //重命名root.ini
+        req.options = 0;
         req.restartApp = true;
         req.restartPC = false;
         req.param1 = 0;
@@ -518,7 +612,11 @@ $(function () {
         req.param3 = "";
         req.param4 = "";
 
+        console.log("check adapter: " + adapter + " " + port + " " + baudrate);
+
+        setTestBtnStatus(false);
         RVC.DeviceControlEntityCtrl.TestAdapterFileAvailable(req, function(ret) {
+            setTestBtnStatus(true);
             if(ret.errorCode === 0) {
                 let result = JSON.parse(ret[RVC.EntityController.sigResponseUUID])
                 if(result.status == 0) {
@@ -532,6 +630,43 @@ $(function () {
         });
     }
 
+    function SaveDevAdapterInfo(adapter, port, baudrate)
+    {
+        let req = new Request();
+        req.preStep = CONST.DeployStep_AdapterConfig;
+        req.currStep = CONST.DeployStep_AdapterConfig;
+        req.nextStep = CONST.DeployStep_AdapterConfig;
+        req.param1 = parseInt(port, 10);
+        req.param2 = parseInt(baudrate, 10);
+        req.param3 = adapter;
+        req.param4 = '';
+        req.param5 = '';
+        req.array1 = [0];
+        req.array2 = [''];
+        req.options = 0x2;
+        req.additional = 0;
+        req.restartApp = false;
+        req.restartPC = false;
+
+        setSaveBtnStatus(false);
+        RVC.HealthmanagerEntityCtrl.DeployTerminal(req, function(ret) {
+            setSaveBtnStatus(true);
+            if(ret.errorCode === 0) {
+                let result = JSON.parse(ret[RVC.EntityController.sigResponseUUID])
+                if(result.result == 0) {
+                    globalLastRemberAdapterName = adapter;
+                    utilShowToast('已保存,将重新刷新', 1000, function() {
+                        LoadDeviceAdaptersWithEvent(true);
+                    });
+                } else {
+                    utilStartAlertDialog("操作失败:[" + result.result + "] " + result.additionalMsg);
+                }
+            } else {
+                RVC.HealthmanagerEntityCtrl.commErrorCallback(ret);
+            }
+        });
+    }
+
     RVC.GuideController = RVC.Object.extend({
         hideAllPage: function () {
             $('#guide_start_page').hide();
@@ -701,6 +836,19 @@ $(function () {
         CheckDevAdapterAvailable(adapterName, paramPort, paramBaudrate);
     });
 
+    $(document).on('click', '#guide_adapter_config_save', function() {
+
+        var adapterName = $('#gui_adapter_config_adapter').attr('value');
+        var paramPort = $('#guide_adapter_config_port_input').val();
+        var paramBaudrate = $('#guide_adapter_config_baudrate_input').val();
+
+        SaveDevAdapterInfo(adapterName, paramPort, paramBaudrate);
+    });
+
+    $(document).on('click', '#guide_adapter_config_next', function() {
+        SaveDevAdapterInfo(adapterName, paramPort, paramBaudrate);
+    });
+
     $(document).on('click', '#guide_sync_centersetting_next', function() {
 
         const ip = $('#guide_sync_centersetting_server_ip_content').val();

+ 4 - 1
addin/res/ManagerDesktop/js/public.js

@@ -310,7 +310,7 @@ function utilStartCommonDialog(noticeEX) {
 function utilStopCommonDialog() {
     utilStopSubmitDialog();
 }
-function utilShowToast(info, showTime) {
+function utilShowToast(info, showTime, callback) {
     if (typeof info === 'undefined' || info === '') {
         return;
     }
@@ -327,6 +327,9 @@ function utilShowToast(info, showTime) {
     }, 10);
     setTimeout(function () {
         $('#toast_location').hide();
+        if(callback) {
+            callback();
+        }
     }, showTimes);
 }