Procházet zdrojové kódy

固件升级 修改,设备维护页面优化

e před 1 rokem
rodič
revize
3e821ba59e

+ 19 - 1
web/安德森/src/utils/i18n/i18n-en-US.json

@@ -436,7 +436,25 @@
   "rzxy":"Authentication protocol",
   "rzmm":"Authentication password",
   "jmxy":"Encryption protocol",
-  "jmmm":"Encrypt password"
+  "jmmm":"Encrypt password",
+  "nmsip":"TRAP NMS Server IP",
+  "snmpbcxz1":"The username length limit is 8-32 bits",
+  "snmpbcxz2":"The length limit for authentication passwords is 8-32 bits",
+  "snmpbcxz3":"The length limit for encrypted passwords is 8-32 bits",
+  "gjbbh":"Firmware version",
+  "gjrq":"Firmware date",
+  "bbls":"Version history",
+  "sjrq":"Upgrade date",
+  "tdsl":"Channel number",
+  "kzbh":"Control version number",
+  "dqzt":"current state",
+  "sjz":"Upgrading",
+  "gjxz":"Firmware selection",
+  "plsj":"Batch upgrade",
+  "kzbgj":"Control board firmware",
+  "qxzgj":"Please select firmware",
+  "qxzkzb":"Please select the control board that needs to be upgraded",
+  "qrsjts":"Are you sure you want to upgrade?"
 
 
 

+ 19 - 1
web/安德森/src/utils/i18n/i18n-ru-RU.json

@@ -437,6 +437,24 @@
   "rzxy":"Соглашение об аутентификации",
   "rzmm":"Пароль аутентификации",
   "jmxy":"Протокол шифрования",
-  "jmmm":"Шифрование"
+  "jmmm":"Шифрование",
+  "nmsip":"TRAP NMS Сервер IP",
+  "snmpbcxz1":"Длина имени пользователя ограничена 8 - 32 битами",
+  "snmpbcxz2":"Длина пароля аутентификации ограничена 8 - 32 битами",
+  "snmpbcxz3":"Длина зашифрованного пароля ограничена 8 - 32 битами",
+  "gjbbh":"Версия прошивки",
+  "gjrq":"Дата прошивки",
+  "bbls":"История версий",
+  "sjrq":"Дата обновления",
+  "tdsl":"Количество каналов",
+  "kzbh":"Контрольный номер",
+  "dqzt":"Текущее состояние",
+  "sjz":"В процессе повышения",
+  "gjxz":"Выбор прошивки",
+  "plsj":"Массовое обновление",
+  "kzbgj":"прошивка панели управления",
+  "qxzgj":"Выберите прошивку",
+  "qxzkzb":"Выберите контрольную панель для обновления",
+  "qrsjts":"Вы уверены, что хотите повышения?"
 
 }

+ 20 - 1
web/安德森/src/utils/i18n/i18n-zh-CN.json

@@ -437,7 +437,26 @@
   "rzxy":"认证协议",
   "rzmm":"认证密码",
   "jmxy":"加密协议",
-  "jmmm":"加密密码"
+  "jmmm":"加密密码",
+  "nmsip":"TRAP NMS服务器IP",
+  "snmpbcxz1":"用户名长度限制是8-32位",
+  "snmpbcxz2":"认证密码长度限制是8-32位",
+  "snmpbcxz3":"加密密码长度限制是8-32位",
+  "gjbbh":"固件版本",
+  "gjrq":"固件日期",
+  "bbls":"版本历史",
+  "sjrq":"升级日期",
+  "tdsl":"通道数量",
+  "kzbh":"控制版号",
+  "dqzt":"当前状态",
+  "sjz":"升级中",
+  "gjxz":"固件选择",
+  "plsj":"批量升级",
+  "kzbgj":"控制板固件",
+  "qxzgj":"请选择固件",
+  "qxzkzb":"请选择需要升级的控制板",
+  "qrsjts":"确认要升级吗?"
+
 
 
 

+ 28 - 18
web/安德森/src/views/fwgl/ntpsz/index.vue

@@ -28,20 +28,20 @@
                 </el-form-item>
 
                 <el-form-item      :label="this.$t('sq')" prop="sq">
-                  <el-select  :disabled="isReadOnly" style="width: 100%" v-model="form.sq"    allow-create   clearable :filterable="false">
+                  <el-select  :disabled="isReadOnly3" style="width: 100%" v-model="form.sq"    allow-create   clearable :filterable="false">
                     <el-option v-for="item in sqs" :key="item.id" :label="item.name" :value="item.id">
                     </el-option>
                   </el-select>
-              </el-form-item>
-                <el-form-item    :label="this.$t('xinq')" prop="sq">
-                  <el-select  :disabled="isReadOnly" style="width: 100%" v-model="form.week"   allow-create   clearable :filterable="false">
-                    <el-option v-for="item in weeks" :key="item.id" :label="$t('xinq')+$t(item.name)" :value="item.id">
-                    </el-option>
-                  </el-select>
                 </el-form-item>
+                <!--<el-form-item    :label="this.$t('xinq')" prop="sq">-->
+                <!--<el-select  :disabled="isReadOnly" style="width: 100%" v-model="form.week"   allow-create   clearable :filterable="false">-->
+                <!--<el-option v-for="item in weeks" :key="item.id" :label="$t('xinq')+$t(item.name)" :value="item.id">-->
+                <!--</el-option>-->
+                <!--</el-select>-->
+                <!--</el-form-item>-->
                 <el-form-item     :label="this.$t('rqsj')" prop="time">
                   <el-date-picker clearable
-                                  :disabled="isReadOnly"
+                                  :disabled="isReadOnly2"
                                   v-model="form.time"
                                   type="datetime"
                                   value-format="yyyy-MM-dd HH:mm:ss"
@@ -99,7 +99,9 @@
         sensorStatusTabs:[],
         sensorStatusOpen: false, // 配置传感器
         sensorStatusList:[],
-        isReadOnly:true
+        isReadOnly:true,
+        isReadOnly2:true,
+        isReadOnly3:true,
       };
     },
     created() {
@@ -121,9 +123,13 @@
       handleSelectChange(type){
         this.form.mode=type
         if(type=='0'){
-          this.isReadOnly=false;
-        }else{
           this.isReadOnly=true;
+          this.isReadOnly2=false
+          this.isReadOnly3=false
+        }else{
+          this.isReadOnly=false;
+          this.isReadOnly2=true
+          this.isReadOnly3=false
         }
       },
       //
@@ -134,14 +140,18 @@
         serviceManagement(params).then(response => {
           if(response.data!=null){
           this.form=response.data;
-            if(response.data.mode=='0'){
-              this.isReadOnly=false;
-            }else{
-              this.isReadOnly=true;
-            }
-
+          if(response.data.mode=='0'){
+            this.isReadOnly=true;
+            this.isReadOnly2=false
+            this.isReadOnly3=false
+          }else{
+            this.isReadOnly=false;
+            this.isReadOnly2=true
+            this.isReadOnly3=false
           }
 
+        }
+
       });
       },
       /** 提交按钮 */
@@ -162,7 +172,7 @@
               serviceManagement(params);
             }).then(() => {
               this.$modal.msgSuccess(this.$t('zxcg'));
-            }).catch(() => {});
+          }).catch(() => {});
 
 
           }

+ 14 - 1
web/安德森/src/views/fwgl/snmpsz/index.vue

@@ -26,7 +26,7 @@
                   </el-select>
                 </el-form-item>
                 <el-form-item   v-if="form.mode=='1'  && form.snmpVersion=='SNMP V3'" :label="this.$t('yhm2')" prop="yhm2">
-                  <el-input v-model="form.yhm"    />
+                  <el-input v-model="form.yhm"  />
                 </el-form-item>
                 <el-form-item  v-if="form.mode=='1' && form.snmpVersion=='SNMP V3' " :label="this.$t('rzxy')" prop="rzxy">
                   <el-select style="width: 100%" v-model="form.rzxy"    @change="handleSelectChange1"    allow-create    :filterable="false">
@@ -200,6 +200,19 @@
               params.trapMode="";
             }
 
+            if(this.form.yhm!=undefined && (this.form.yhm.length>32 || this.form.yhm.length<8) ){
+              alert(this.$t("snmpbcxz1"));
+              return;
+            }
+            if(this.form.rzmm!=undefined && (this.form.rzmm.length>32 || this.form.rzmm.length<8) ){
+              alert(this.$t("snmpbcxz2"));
+              return;
+            }
+            if(this.form.jmmm!=undefined && (this.form.jmmm.length>32 || this.form.jmmm.length<8) ){
+              alert(this.$t("snmpbcxz3"));
+              return;
+            }
+
             this.$modal.confirm(this.$t('qdybcm')).then(function() {
               serviceManagement(params).then(() => {
                 aa.$modal.msgSuccess(aa.$t('zxcg'));

+ 55 - 9
web/安德森/src/views/sbwh/gjsj/index.vue

@@ -19,23 +19,28 @@
     <el-card style="min-height: 700px ;border-radius: 15px">
       <el-table max-height="700"  :data="channelList"  :header-cell-style="{ background:'#FFFFFF',color:'#000000'}">
         <!--<el-table-column type="selection" width="55" align="center" />-->
-        <el-table-column :label="this.$t('sbmc')" prop="productName"  />
-        <el-table-column label="产品ID" v-if="false" prop="productId"  />
-        <el-table-column :label="this.$t('sbbh')" prop="productNumber"  />
-        <el-table-column :label="this.$t('sblx')" prop="productType" :show-overflow-tooltip="true"   >
+        <el-table-column align="center" :label="this.$t('sbmc')" prop="productName"  />
+        <el-table-column align="center" label="产品ID" v-if="false" prop="productId"  />
+        <el-table-column align="center" :label="this.$t('sbbh')" prop="productNumber"  />
+        <el-table-column align="center" :label="this.$t('sblx')" prop="productType" :show-overflow-tooltip="true"   >
           <template slot-scope="scope">
             <span >{{getDity(scope.row,'productType')}}</span>
           </template>
         </el-table-column>
-        <el-table-column :label="this.$t('bbh')" prop="productVersion" :show-overflow-tooltip="true"   />
+        <el-table-column align="center" :label="this.$t('gjbbh')" prop="productVersion" :show-overflow-tooltip="true"   />
+        <el-table-column align="center" :label="this.$t('gjrq')" prop="firmwareDate" :show-overflow-tooltip="true"   />
         <el-table-column :label="this.$t('cz')" align="center"  class-name="small-padding fixed-width">
           <template slot-scope="scope" >
             <el-button
               size="mini"
               type="text"
-              icon="el-icon-setting"
               @click="handleImport(scope.row)"
             >{{$t('gjsj')}}</el-button>
+            <el-button
+              size="mini"
+              type="text"
+              @click="handleHis(scope.row)"
+            >{{$t('bbls')}}</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -76,7 +81,18 @@
         <el-button @click="cancel">{{$t('qx')}}</el-button>
       </div>
     </el-dialog>
+    <el-dialog :title="title" class="dialogClass" style="overflow-y: auto;" :visible.sync="open"  width="500px" :close-on-click-modal="false" :close-on-press-escape="false" append-to-body>
+      <el-col style="height: 500px;overflow-y: auto;"  >
+        <el-card  >
+          <el-collapse accordion v-model="activeNames">
+            <el-collapse-item  v-for="(item, index) in hisData" :name="index"  :title="item.productVersion+' -  '+item.versionDate">
+              <li>{{item.updateContent}}</li>
+            </el-collapse-item>
+          </el-collapse>
+        </el-card>
+      </el-col>
 
+    </el-dialog>
   </div>
 </template>
 
@@ -130,6 +146,8 @@
           url:  window.location.origin+"/pdu/equipmentMintenanceUpload" // todo
         },
         productChTypes:[{"id":"1","name":"sblx1"},{"id":"2","name":"sblx2"},{"id":"3","name":"sblx3"},{"id":"4","name":"sblx4"},{"id":"5","name":"sblx5"}],
+        hisData:[],
+        activeNames:[]
       };
     },
     created() {
@@ -264,11 +282,25 @@
         this.resetForm("queryForm");
         this.handleQuery();
       },
-      /** 修改按钮操作 */
-      handleUpdate(row) {
+      /** 版本历史 */
+      handleHis(row) {
         this.form =row;
+        const params={};
+        params.token=this.usertoken;
+        params.type="listRtHisQuery";
+        params.productId=row.productId;
+        this.loading = true;
+        // console.log(this.queryParams)
+        equipmentMintenance(params).then(response => {
+          if(response.data!=null){
+          this.hisData=response.data;
+        }
+        // this.channelList = response.data;
+      }).catch(() => {});
+        this.loading = false;
         this.open = true;
-        this.title = this.$t('gjsj');
+        this.title = this.$t('bbls');
+        this.activeNames=[0];
       },
 
       /** 提交按钮 */
@@ -326,5 +358,19 @@
   .left-align-form .el-form-item {
     margin-bottom: 0; /* 根据需要可以去掉或调整间距 */
   }
+  .update-log {
+  ol {
+    display: block;
+    list-style-type: decimal;
+    margin-block-start: 1em;
+    margin-block-end: 1em;
+    margin-inline-start: 0;
+    margin-inline-end: 0;
+    padding-inline-start: 40px;
+  }
+  }
+  .dialogClass .el-dialog{
+    height: 600px;
+  }
 </style>
 

+ 12 - 12
web/安德森/src/views/sbwh/gysb/index.vue

@@ -18,18 +18,18 @@
     <el-card style="min-height: 700px ;border-radius: 15px">
     <el-table max-height="700"  :data="channelList" :header-cell-style="{ background:'#FFFFFF',color:'#000000'}">
       <!--<el-table-column type="selection" width="55" align="center" />-->
-      <el-table-column :label="this.$t('sbmc')" prop="productName"  />
-      <el-table-column label="产品ID" v-if="false" prop="productId"  />
-      <el-table-column :label="this.$t('sbbh')" prop="productNumber"  />
-      <el-table-column :label="this.$t('sbyzm')" prop="productCode" width="180" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('sbxh')" prop="productModel" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('gjbb')" prop="productVersion" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('xtsj')" prop="systemTime" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('yxsj')" prop="runTime" :show-overflow-tooltip="true"   />
-      <el-table-column :label="'IP'+this.$t('dz')" prop="IPadress" :show-overflow-tooltip="true"   />
-      <el-table-column :label="'MAC'+this.$t('dz')" prop="MACadress" :show-overflow-tooltip="true"   />
-      <el-table-column :label="'RS485'+this.$t('dz')" prop="RSadress" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('cz')" align="center"  class-name="small-padding fixed-width">
+      <el-table-column  align="center" :label="this.$t('sbmc')" prop="productName"  />
+      <el-table-column  align="center" label="产品ID" v-if="false" prop="productId"  />
+      <el-table-column  align="center" :label="this.$t('sbbh')" prop="productNumber"  />
+      <el-table-column  align="center" :label="this.$t('sbyzm')" prop="productCode" width="180" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('sbxh')" prop="productModel" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('gjbb')" prop="productVersion" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('xtsj')" prop="systemTime" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('yxsj')" prop="runTime" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="'IP'+this.$t('dz')" prop="IPadress" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="'MAC'+this.$t('dz')" prop="MACadress" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="'RS485'+this.$t('dz')" prop="RSadress" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('cz')"  class-name="small-padding fixed-width">
         <template slot-scope="scope" >
           <el-button
             size="mini"

+ 5 - 5
web/安德森/src/views/sbwh/hhccsz/index.vue

@@ -32,15 +32,15 @@
     <el-card style="min-height: 700px ;border-radius: 15px">
     <el-table max-height="700"  :data="channelList" :header-cell-style="{ background:'#FFFFFF',color:'#000000'}">
       <!--<el-table-column type="selection" width="55" align="center" />-->
-      <el-table-column :label="this.$t('sbmc')" prop="productName"  />
-      <el-table-column label="产品ID" v-if="false" prop="productId"  />
-      <el-table-column :label="this.$t('sbbh')" prop="productNumber"  />
-      <el-table-column :label="this.$t('sblx')" prop="productType" :show-overflow-tooltip="true"   >
+      <el-table-column  align="center" :label="this.$t('sbmc')" prop="productName"  />
+      <el-table-column  align="center" label="产品ID" v-if="false" prop="productId"  />
+      <el-table-column  align="center" :label="this.$t('sbbh')" prop="productNumber"  />
+      <el-table-column  align="center" :label="this.$t('sblx')" prop="productType" :show-overflow-tooltip="true"   >
         <template slot-scope="scope">
         <span >{{getDity(scope.row,'productType')}}</span>
       </template>
       </el-table-column>
-      <el-table-column :label="this.$t('sbzt')" prop="productStatus" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('sbzt')" prop="productStatus" :show-overflow-tooltip="true"   />
       <el-table-column :label="this.$t('cz')" align="center"  class-name="small-padding fixed-width">
         <template slot-scope="scope" >
           <el-button

+ 5 - 5
web/安德森/src/views/sbwh/sbcq/index.vue

@@ -25,15 +25,15 @@
     <el-card style="min-height: 700px ;border-radius: 15px">
       <el-table max-height="700"  :data="channelList"  :header-cell-style="{ background:'#FFFFFF',color:'#000000'}">
         <!--<el-table-column type="selection" width="55" align="center" />-->
-        <el-table-column :label="this.$t('sbmc')" prop="productName"  />
-        <el-table-column label="产品ID" v-if="false" prop="productId"  />
-        <el-table-column :label="this.$t('sbbh')" prop="productNumber"  />
-        <el-table-column :label="this.$t('sblx')" prop="productType" :show-overflow-tooltip="true"   >
+        <el-table-column  align="center" :label="this.$t('sbmc')" prop="productName"  />
+        <el-table-column  align="center" label="产品ID" v-if="false" prop="productId"  />
+        <el-table-column  align="center" :label="this.$t('sbbh')" prop="productNumber"  />
+        <el-table-column  align="center" :label="this.$t('sblx')" prop="productType" :show-overflow-tooltip="true"   >
           <template slot-scope="scope">
             <span >{{getDity(scope.row,'productType')}}</span>
           </template>
         </el-table-column>
-        <el-table-column :label="this.$t('sbzt')" prop="productStatus" :show-overflow-tooltip="true"   />
+        <el-table-column  align="center" :label="this.$t('sbzt')" prop="productStatus" :show-overflow-tooltip="true"   />
         <el-table-column :label="this.$t('cz')" align="center"  class-name="small-padding fixed-width">
           <template slot-scope="scope" >
             <el-button

+ 9 - 9
web/安德森/src/views/sbwh/shfw/index.vue

@@ -31,16 +31,16 @@
     <el-card style="min-height: 700px ;border-radius: 15px">
     <el-table max-height="700"  :data="channelList"  :header-cell-style="{ background:'#FFFFFF',color:'#000000'}">
       <!--<el-table-column type="selection" width="55" align="center" />-->
-      <el-table-column :label="this.$t('sbmc')" prop="productName"  />
+      <el-table-column  align="center" :label="this.$t('sbmc')" prop="productName"  />
       <el-table-column label="产品ID" v-if="false" prop="productId"  />
-      <el-table-column :label="this.$t('sbbh')" prop="productNumber"  />
-      <el-table-column :label="this.$t('sblx')" v-if="false" prop="productType" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('cslg')" prop="logo" v-if="false" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('dz')" prop="sensorAddr" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('wz')" prop="website" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('shdh')" prop="serviceTel" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('yx')" prop="mailbox" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('ewm')" v-if="false" prop="qrCode" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('sbbh')" prop="productNumber"  />
+      <el-table-column  align="center" :label="this.$t('sblx')" v-if="false" prop="productType" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('cslg')" prop="logo" v-if="false" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('dz')" prop="sensorAddr" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('wz')" prop="website" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('shdh')" prop="serviceTel" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('yx')" prop="mailbox" :show-overflow-tooltip="true"   />
+      <el-table-column  align="center" :label="this.$t('ewm')" v-if="false" prop="qrCode" :show-overflow-tooltip="true"   />
       <el-table-column :label="this.$t('cz')" align="center"  class-name="small-padding fixed-width">
         <template slot-scope="scope" >
           <el-button