dedsudiyu 1 year ago
parent
commit
36f00531fa

+ 32 - 0
src/api/iotDevice/index.js

@@ -823,3 +823,35 @@ export function iotAppInfoGetCodeList(query) {
     params: query
   })
 }
+//应用列表-获取可升级设备列表
+export function iotAppInfoUpgradeDevices(data) {
+  return request({
+    url: '/iot/app/info/upgradeDevices',
+    method: 'post',
+    data: data
+  })
+}
+//应用列表-批量升级
+export function iotAppInfoBatchUpgrade(data) {
+  return request({
+    url: '/iot/app/info/batchUpgrade',
+    method: 'post',
+    data: data
+  })
+}
+//应用升级-列表
+export function iotAppUpgradeList(data) {
+  return request({
+    url: '/iot/app/upgrade/list',
+    method: 'post',
+    data: data
+  })
+}
+//应用升级-撤销升级
+export function iotAppUpgradeDelete(data) {
+  return request({
+    url: '/iot/app/upgrade/delete',
+    method: 'post',
+    data: data
+  })
+}

+ 247 - 0
src/views/iotDevice/appManage/applyList/batchUpDialog.vue

@@ -0,0 +1,247 @@
+<template>
+  <div class="applyList-batchUpDialog">
+    <el-dialog class="batchUpDialog" :title="batchUpDialogTitle"
+               :visible.sync="batchUpDialogType" v-if="batchUpDialogType" width="1240px" height="700"
+               append-to-body :close-on-click-modal="false" @close="dialogOff()">
+      <div class="page-form-title-box" style="border:none;padding:0;height:60px;">
+        <el-form :model="queryParams" class="form-box" ref="queryForm"
+                 :inline="true" style="width:100%;">
+          <el-form-item label="" prop="schoolId">
+            <el-select v-model="queryParams.schoolId" @change="changeSchool"
+                       placeholder="请选择校区" style="width: 150px">
+              <el-option v-for="(item,index) in schoolOption"
+                         :key="item.id"
+                         :label="item.name"
+                         :value="item.id"/>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="" prop="buildId">
+            <el-select v-model="queryParams.buildId" @change="buildSchool"
+                       placeholder="请选择楼栋" style="width: 150px">
+              <el-option v-for="(item,index) in buildOption"
+                         :key="item.id"
+                         :label="item.name"
+                         :value="item.id"/>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="" prop="subjectId">
+            <el-select v-model="queryParams.subjectId"
+                       placeholder="请选择实验室" style="width: 150px">
+              <el-option v-for="(item,index) in subjectOption"
+                         :key="item.subId"
+                         :label="item.subName"
+                         :value="item.subId"/>
+            </el-select>
+          </el-form-item>
+          <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
+          <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
+        </el-form>
+      </div>
+      <div class="page-content-box" style="padding:0;height:500px;">
+        <el-table class="table-box" border :data="tableList" ref="multipleTable" :row-key="getRowKeys"
+                  tooltip-effect="dark" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="50" align="center" :reserve-selection="true"/>
+          <el-table-column label="名称" align="center" prop="deviceName" show-overflow-tooltip/>
+          <el-table-column label="编号" align="center" prop="deviceNo" show-overflow-tooltip width="300"/>
+          <el-table-column label="类型" align="center" prop="name" show-overflow-tooltip width="200"/>
+          <el-table-column label="位置" align="center" prop="subjectName" show-overflow-tooltip width="200">
+            <template slot-scope="scope">
+              <span>{{scope.row.subjectName?scope.row.subjectName:'--'}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="当前版本" align="center" prop="appName" show-overflow-tooltip width="200">
+            <template slot-scope="scope">
+              <span>{{scope.row.appName}} {{scope.row.version?' ('+scope.row.version+')':''}}</span>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div class="selected-num-box" v-show="total>0">
+          <p class="selected-num-p">
+            <i class="el-icon-warning"></i>
+            已选择 {{selectedNum}} 项
+          </p>
+          <pagination :page-sizes="[20, 30, 40, 50]"
+                      :total="total"
+                      :page.sync="queryParams.page"
+                      :limit.sync="queryParams.pageSize"
+                      @pagination="getList"
+          />
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer dialog-footer-box">
+        <p class="dialog-footer-button-null"></p>
+        <p class="dialog-footer-button-info" @click="dialogOff">取消</p>
+        <p class="dialog-footer-button-primary" @click="dialogSubmit">确定</p>
+        <p class="dialog-footer-button-null"></p>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import { iotAppInfoUpgradeDevices,iotAppInfoBatchUpgrade, } from "@/api/iotDevice/index";
+  import { systemBuildingGetTreeList,laboratorySubRelInfoGetListByFloor } from "@/api/commonality/permission";
+  export default {
+    name: 'batchUpDialog',
+    data(){
+      return{
+        typeId:null,
+        batchUpDialogTitle:'',
+        batchUpDialogType:false,
+        //校区楼栋原始数据
+        addressList:[],
+        //校区下拉列表
+        schoolOption:[],
+        //楼栋下拉列表
+        buildOption:[],
+        //实验室下拉列表
+        subjectOption:[],
+        //列表相关
+        optionList:[],
+        queryParams:{
+          page:1,
+          pageSize:20,
+          schoolId:null,
+          buildId:null,
+          subjectId :null,
+        },
+        tableList:[],
+        total:0,
+        //勾选相关
+        selectedNum:0,
+        ids:[],
+      }
+    },
+    created(){
+
+    },
+    mounted(){
+      this.systemBuildingGetTreeList();
+    },
+    methods:{
+      //提交
+      dialogSubmit(){
+        if(!this.ids[0]){
+          this.msgError('请勾选设备')
+        }else{
+          let obj = {
+            id:this.typeId,
+            isAll:false,
+            ids:this.ids
+          }
+          iotAppInfoBatchUpgrade(obj).then(response => {
+            this.msgSuccess(response.message)
+            this.dialogOff();
+          });
+        }
+      },
+      //开启
+      dialogOpen(row){
+        this.$set(this,'batchUpDialogTitle',row.name+' ('+row.info+') '+'- 批量升级');
+        this.$set(this,'typeId',row.id);
+        this.$set(this,'batchUpDialogType',true);
+        this.$nextTick(()=>{
+          this.resetQuery();
+        })
+      },
+      //关闭
+      dialogOff(){
+        this.$set(this,'batchUpDialogType',false);
+        this.$set(this,'batchUpDialogTitle','');
+      },
+      //查询
+      handleQuery(){
+        this.$refs.multipleTable.clearSelection();
+        this.$set(this.queryParams,'page',1);
+        this.$set(this,'selectedNum',0);
+        this.$set(this,'ids',[]);
+        this.getList();
+      },
+      //重置
+      resetQuery(){
+        //清除选中
+        this.$refs.multipleTable.clearSelection();
+        this.$set(this,'queryParams',{
+          page:1,
+          pageSize:20,
+          schoolId:null,
+          buildId:null,
+          subjectId :null,
+        });
+        this.$set(this,'selectedNum',0);
+        this.$set(this,'ids',[]);
+        this.getList();
+      },
+      getList(){
+        let obj = JSON.parse(JSON.stringify(this.queryParams))
+        obj.id = this.typeId;
+        iotAppInfoUpgradeDevices(obj).then(response => {
+          this.$set(this,'tableList',response.data.records);
+          this.$set(this,'total',response.data.total);
+        });
+      },
+      //获取校区
+      systemBuildingGetTreeList(){
+        systemBuildingGetTreeList({}).then(response => {
+          let list = [];
+          for(let i=0;i<response.data.length;i++){
+            list.push({
+              id:response.data[i].id,
+              name:response.data[i].name,
+            })
+          }
+          this.$set(this,'schoolOption',list);
+          this.$set(this,'addressList',response.data);
+        })
+      },
+      //校区选中
+      changeSchool(val){
+        let self = this;
+        let list = [];
+        for(let i=0;i<self.addressList.length;i++){
+          if(val == self.addressList[i].id && self.addressList[i].buildFloorVoList[0]){
+            for(let o=0;o<self.addressList[i].buildFloorVoList.length;o++){
+              list.push({
+                id:self.addressList[i].buildFloorVoList[o].id,
+                name:self.addressList[i].buildFloorVoList[o].name,
+              })
+            }
+          }
+        }
+        this.$set(this.queryParams,'buildId',null);
+        this.$set(this.queryParams,'subjectId',null);
+        this.$set(this,'buildOption',list);
+        this.$set(this,'subjectOption',[]);
+      },
+      //楼栋选中
+      buildSchool(val){
+        laboratorySubRelInfoGetListByFloor({buildId:val}).then(response => {
+          this.$set(this.queryParams,'subjectId',null);
+          this.$set(this,'subjectOption',response.data);
+        })
+      },
+      /*===记录勾选数据===
+        需要再el-table 添加  :row-key="getRowKeys"
+        需要在selection 添加 :reserve-selection="true"
+      */
+      getRowKeys(row) {
+        return row.deviceId
+      },
+      //多选框选中数据
+      handleSelectionChange(selection) {
+        this.selectedNum = selection.length;
+        this.ids = selection.map(item => item.deviceId)
+      },
+    },
+  }
+</script>
+
+<style scoped lang="scss">
+  .applyList-batchUpDialog{
+    .content-box{
+      flex:1;
+      display: flex;
+      padding:20px;
+    }
+  }
+</style>

+ 62 - 16
src/views/iotDevice/appManage/applyList/index.vue

@@ -10,12 +10,11 @@
               maxLength="30"
               v-model="queryParams.name"
               placeholder="请输入应用名"
-              clearable
               style="width: 200px"
             />
           </el-form-item>
           <el-form-item label="" prop="code">
-            <el-select v-model="queryParams.code" clearable placeholder="请选择设备类型" style="width: 200px">
+            <el-select v-model="queryParams.code" placeholder="请选择设备类型" style="width: 200px">
               <el-option
                 v-for="item in optionList"
                 :key="item.code"
@@ -25,7 +24,7 @@
             </el-select>
           </el-form-item>
           <el-form-item label="" prop="state">
-            <el-select v-model="queryParams.state" clearable placeholder="请选择状态" style="width: 200px">
+            <el-select v-model="queryParams.state" placeholder="请选择状态" style="width: 200px">
               <el-option label="启用" :value="true"></el-option>
               <el-option label="禁用" :value="false"></el-option>
             </el-select>
@@ -35,7 +34,7 @@
           <p class="page-submit-common-style-button"
              style="float: right;"
              @click="handleClick()"
-             v-hasPermiRouter="['system:appManage:add']"
+             v-hasPermiRouter="['iot:appInfo:add']"
           >添加应用</p>
         </el-form>
       </div>
@@ -60,20 +59,24 @@
               {{parseTime(scope.row.createTime,"{y}-{m}-{d} {h}:{i}:{s}")}}
             </template>
           </el-table-column>
-          <el-table-column label="操作" align="center" prop="deptName" width="200" v-if="tableButtonType">
+          <el-table-column label="操作" align="center" prop="deptName" width="260" v-if="tableButtonType">
             <template slot-scope="scope">
               <div class="table-button-box">
                 <p class="table-button-null"></p>
+                <p class="table-button-p"
+                   @click="tableButton(4,scope.row)"
+                   v-hasPermiRouter="['iot:appInfo:batch']"
+                >升级</p>
                 <p class="table-button-p"
                    @click="tableButton(1,scope.row)"
                 >下载</p>
                 <p class="table-button-p"
                    @click="tableButton(2,scope.row)"
-                   v-hasPermiRouter="['system:appManage:edit']"
+                   v-hasPermiRouter="['iot:appInfo:edit']"
                 >编辑</p>
                 <p class="table-button-p"
                    @click="tableButton(3,scope.row)"
-                   v-hasPermiRouter="['system:appManage:edit']"
+                   v-hasPermiRouter="['iot:appInfo:del']"
                 >删除</p>
                 <p class="table-button-null"></p>
               </div>
@@ -99,7 +102,6 @@
               v-model="dialogForm.name"
               maxLength="20"
               placeholder="请上传应用"
-              clearable
               style="width: 500px"
             />
           </el-form-item>
@@ -111,7 +113,6 @@
               :step="0.01"
               maxLength="20"
               placeholder="请输入版本号"
-              clearable
               style="width: 500px"
               controls-position="right"
               :min="minVersion" :max="100">
@@ -124,7 +125,6 @@
               v-model="dialogForm.info"
               maxLength="200"
               placeholder="请输入版本描述"
-              clearable
               style="width: 500px"
             />
           </el-form-item>
@@ -173,21 +173,27 @@
         <p class="dialog-footer-button-null"></p>
       </div>
     </el-dialog>
+    <batch-up-dialog ref="batchUpDialog"></batch-up-dialog>
   </div>
 </template>
 
 <script>
-  // import { iotAppInfoList,iotAppInfoAdd,iotAppInfoUpdate,iotAppInfoDelete,iotAppInfoGetLastVersion,iotAppInfoGetCodeList } from "@/api/serviceCenter/index";
-  import { iotAppInfoList,iotAppInfoGetCodeList,iotAppInfoAdd,iotAppInfoUpdate,iotAppInfoDelete,iotAppInfoGetLastVersion, } from "@/api/iotDevice/index";
+
+  import batchUpDialog from './batchUpDialog.vue'
+  import { iotAppInfoList,iotAppInfoGetCodeList,iotAppInfoAdd,iotAppInfoUpdate,
+    iotAppInfoDelete,iotAppInfoGetLastVersion,iotAppInfoBatchUpgrade, } from "@/api/iotDevice/index";
   import { getToken } from "@/utils/auth";
   import axios from 'axios'
   import SparkMD5 from 'spark-md5'
   let httpHeader=window.location.href.split('://')[0]+'://'
   export default {
     name: 'applyList',
+    components: {
+      batchUpDialog
+    },
     data(){
       return{
-        tableButtonType:this.hasPermiDom(['system:appManage:edit','system:appManage:detail','system:appManage:edit']),
+        tableButtonType:this.hasPermiDom(['iot:appInfo:batch','iot:appInfo:edit','iot:appInfo:del']),
         loading:false,
         optionList:[],
         queryParams:{
@@ -497,8 +503,9 @@
       tableButton(type,row){
         let self = this;
         if(type == 1){
-          let url = 'http://192.168.1.43/labSystem/admin/statics/bigFile/2023111616/eae451a3-d92d-4795-9cbe-369430d21ba6.apk'
-          this.downloadGet(url,row.name+'.apk');
+          // let url = 'http://192.168.1.43/labSystem/admin/statics/bigFile/2023111616/eae451a3-d92d-4795-9cbe-369430d21ba6.apk'
+          // this.downloadGet(url,row.name+'.apk');
+          this.downloadGet(row.url,row.name+'.apk');
           // this.downloadUrl(url,row.name+'.apk');
         }else if(type == 2){
           let obj = JSON.parse(JSON.stringify(row));
@@ -533,6 +540,34 @@
               self.getList();
             });
           }).catch(() => {});
+        }else  if (type == 4){
+          this.$confirm('请选择升级方式?', "提示", {
+            confirmButtonText: "手动勾选",
+            cancelButtonText: "批量升级",
+            confirmButtonClass:'confirmBatchButton',
+            cancelButtonClass:'confirmBatchButton',
+            type: "warning"
+          }).then(function() {
+          }).then(() => {
+            this.$refs.batchUpDialog.dialogOpen(row);
+          }).catch(() => {
+            self.$confirm('是否确认批量升级?', "警告", {
+              confirmButtonText: "确定",
+              cancelButtonText: "取消",
+              type: "warning"
+            }).then(function() {
+            }).then(() => {
+              let obj = {
+                id:row.id,
+                isAll:true,
+              }
+              iotAppInfoBatchUpgrade(obj).then(response => {
+                this.msgSuccess(response.message)
+              });
+            }).catch(() => {});
+
+          });
+
         }
       },
       //选中设备类型
@@ -565,7 +600,7 @@
 <style scoped lang="scss">
   .applyList{
     .applyListPage{
-
+      flex: 1;
     }
   }
 </style>
@@ -626,4 +661,15 @@
       margin-top:2px;
     }
   }
+  .confirmBatchButton{
+    background-color: #0183FA !important;
+    border:1px solid #0183FA !important;
+    color: #ffffff !important;
+    font-size:14px;
+  }
+  .confirmBatchButton:hover{
+    background-color: #409EFF !important;
+    border:1px solid #409EFF !important;
+    color:#ffffff !important;
+  }
 </style>

+ 52 - 33
src/views/iotDevice/appManage/applyUpgrades/index.vue

@@ -5,66 +5,70 @@
       <div class="page-form-title-box">
         <el-form :model="queryParams" class="form-box" ref="queryForm"
                  :inline="true" style="width:100%;">
-          <el-form-item label="" prop="name" label-width="90px">
+          <el-form-item label="" prop="searchValue" label-width="90px">
             <el-input
               maxLength="30"
-              v-model="queryParams.name"
+              v-model="queryParams.searchValue"
               placeholder="请输入设备号"
               clearable
               style="width: 200px"
             />
           </el-form-item>
-          <el-form-item label="" prop="type">
-            <el-select v-model="queryParams.type" clearable placeholder="请选择设备类型" style="width: 200px">
+          <el-form-item label="" prop="code">
+            <el-select v-model="queryParams.code" clearable placeholder="请选择设备类型" style="width: 200px">
               <el-option
                 v-for="item in optionList"
-                :key="item.type"
+                :key="item.code"
                 :label="item.name"
-                :value="item.type">
+                :value="item.code">
               </el-option>
             </el-select>
           </el-form-item>
           <el-form-item label="" prop="state">
             <el-select v-model="queryParams.state" clearable placeholder="请选择状态" style="width: 200px">
-              <el-option label="启用" :value="true"></el-option>
-              <el-option label="禁用" :value="false"></el-option>
+              <el-option label="待升级" :value="0"></el-option>
+              <el-option label="成功" :value="1"></el-option>
+              <el-option label="失败" :value="2"></el-option>
             </el-select>
           </el-form-item>
           <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
           <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
-          <p class="page-submit-common-style-button"
-             style="float: right;"
-             @click="handleClick()"
-          >批量升级</p>
+          <!--<p class="page-submit-common-style-button"-->
+             <!--style="float: right;"-->
+             <!--@click="handleClick()"-->
+          <!--&gt;批量升级</p>-->
         </el-form>
       </div>
       <div class="page-content-box">
         <el-table class="table-box" v-loading="loading" border :data="tableList" ref="multipleTable">
-          <el-table-column label="设备号" align="center" prop="deviceNum" show-overflow-tooltip width="180"/>
-          <el-table-column label="设备类型" align="center" prop="type" show-overflow-tooltip width="180">
+          <el-table-column label="名称" align="center" prop="deviceName" show-overflow-tooltip/>
+          <el-table-column label="编号" align="center" prop="deviceNo" show-overflow-tooltip width="240"/>
+          <el-table-column label="类型" align="center" prop="type" show-overflow-tooltip width="180">
             <template slot-scope="scope">
-              <p v-for="item in optionList" v-if="item.type == scope.row.type">{{item.name}}</p>
+              <p v-for="item in optionList" v-if="item.code == scope.row.code">{{item.name}}</p>
             </template>
           </el-table-column>
-          <el-table-column label="应用名" align="center" prop="name" show-overflow-tooltip/>
-          <el-table-column label="原始版本" align="center" prop="origVersion" show-overflow-tooltip width="100"/>
+          <el-table-column label="应用名" align="center" prop="appName" show-overflow-tooltip width="180"/>
+          <!--<el-table-column label="原始版本" align="center" prop="info" show-overflow-tooltip width="100"/>-->
           <el-table-column label="升级版本" align="center" prop="upgradedVersion" show-overflow-tooltip width="120"/>
           <el-table-column label="状态" align="center" prop="state" show-overflow-tooltip width="100">
             <template slot-scope="scope">
-              {{scope.row.state?'成功':'失败'}}
+              {{scope.row.state == 0?'待升级':(scope.row.state == 1?'成功':(scope.row.state == 2?'失败':''))}}
             </template>
           </el-table-column>
-          <el-table-column label="升级时间" align="center" prop="createTime" show-overflow-tooltip width="180">
+          <el-table-column label="时间" align="center" prop="createTime" show-overflow-tooltip width="180">
             <template slot-scope="scope">
-              {{parseTime(scope.row.createTime,"{y}-{m}-{d} {h}:{i}:{s}")}}
+              {{parseTime(scope.row.createTime,"{y}-{m}-{d} {h}:{i}")}}
             </template>
           </el-table-column>
-          <el-table-column label="操作" align="center" prop="deptName" width="200">
+          <el-table-column label="操作" align="center" prop="deptName" width="100" v-if="tableButtonType">
             <template slot-scope="scope">
               <div class="table-button-box">
                 <p class="table-button-null"></p>
-                <p class="table-button-p" v-if="!scope.row.state" @click="tableButton(1,scope.row)">重试</p>
-                <p class="table-button-p" @click="tableButton(2,scope.row)">修改</p>
+                <p class="table-button-p"
+                   v-hasPermiRouter="['iot:appUpgrade:del']"
+                   v-if="scope.row.state == 0"
+                   @click="tableButton(1,scope.row)">撤销</p>
                 <p class="table-button-null"></p>
               </div>
             </template>
@@ -83,18 +87,20 @@
 </template>
 
 <script>
-  import { appUpgradeList,appInfoAdd,appInfoType } from "@/api/serviceCenter/index";
+  // import { iotAppUpgradeList,appInfoAdd,iotAppInfoGetCodeList } from "@/api/serviceCenter/index";
+  import { iotAppUpgradeList,iotAppInfoGetCodeList,iotAppUpgradeDelete, } from "@/api/iotDevice/index";
   export default {
     name: 'applyUpgrades',
     data(){
       return{
+        tableButtonType:this.hasPermiDom(['iot:appUpgrade:del']),
         loading:false,
         optionList:[],
         queryParams:{
           page:1,
           pageSize:20,
-          name:"",
-          type:"",
+          searchValue:"",
+          code:"",
         },
         tableList:[],
         total:0,
@@ -105,12 +111,12 @@
     },
     mounted(){
       this.getList();
-      this.appInfoType();
+      this.iotAppInfoGetCodeList();
     },
     methods:{
       //获取设备类型
-      appInfoType(){
-        appInfoType().then(response => {
+      iotAppInfoGetCodeList(){
+        iotAppInfoGetCodeList().then(response => {
           this.$set(this,'optionList',response.data);
         });
       },
@@ -128,8 +134,8 @@
         this.$set(this,'queryParams',{
           page:1,
           pageSize:20,
-          name:"",
-          type:"",
+          searchValue:"",
+          code:"",
         });
         this.getList();
       },
@@ -137,7 +143,7 @@
       getList(){
         this.$set(this,'loading',true);
         let obj = JSON.parse(JSON.stringify(this.queryParams))
-        appUpgradeList(obj).then(response => {
+        iotAppUpgradeList(obj).then(response => {
           this.$set(this,'loading',false);
           this.$set(this,'tableList',response.data.records);
           this.$set(this,'total',response.data.total);
@@ -145,7 +151,20 @@
       },
       //操作按钮
       tableButton(type,row){
-
+        let self = this;
+        if(type == 1){
+          this.$confirm('是否确认撤销?', "警告", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          }).then(function() {
+          }).then(() => {
+            iotAppUpgradeDelete({id:row.id}).then(response => {
+              self.msgSuccess(response.message)
+              self.getList();
+            });
+          }).catch(() => {});
+        }
       },
     },
   }

+ 3 - 2
src/views/serviceCenter/apkManage/applyList/index.vue

@@ -488,8 +488,9 @@
       tableButton(type,row){
         let self = this;
         if(type == 1){
-          let url = 'http://192.168.1.43/labSystem/admin/statics/bigFile/2023111616/eae451a3-d92d-4795-9cbe-369430d21ba6.apk'
-          this.downloadGet(url,row.name+'.apk');
+          // let url = 'http://192.168.1.43/labSystem/admin/statics/bigFile/2023111616/eae451a3-d92d-4795-9cbe-369430d21ba6.apk'
+          // this.downloadGet(url,row.name+'.apk');
+          this.downloadGet(row.url,row.name+'.apk');
           // this.downloadUrl(url,row.name+'.apk');
         }else if(type == 2){
           let obj = JSON.parse(JSON.stringify(row));