Przeglądaj źródła

OTA升级,api缺少字段,数据分析暂无接口

yukai 2 lat temu
rodzic
commit
12e890409f

+ 128 - 0
src/views/iot/ota-update/data/index.vue

@@ -0,0 +1,128 @@
+<template>
+	<el-card shadow="hover">
+		<el-tabs v-model="activeTab">
+				<el-tab-pane label="版本分布" name="tab1">
+					<div class="flex">
+						<el-form-item label="所属产品" prop="productId">
+							<el-select v-model="productId" filterable placeholder="请选择产品">
+								<el-option v-for="item in productData" :key="item.id" :label="item.name" :value="item.id.toString()" value-key="id">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="所属模块" prop="productId" class="ml10">
+							<el-select v-model="productId" filterable placeholder="请选择所属模块">
+								<el-option v-for="item in productData" :key="item.id" :label="item.name" :value="item.id.toString()" value-key="id">
+								</el-option>
+							</el-select>
+						</el-form-item>
+					</div>
+					<div >
+						<el-row>
+						<el-col :span="12">
+							<div class="data-box">
+								<div class="title">版本分布</div>
+								<div style="height: 100%" ref="pieRef"></div>
+
+							</div>
+						</el-col>
+						<el-col :span="12">
+							<div class="data-box">
+								<div class="title">版本占比</div>
+
+							</div>
+
+						</el-col>
+					</el-row>
+
+					</div>
+				</el-tab-pane>
+				<el-tab-pane label="成功率分布" name="tab2">
+					<div class="flex">
+						<el-form-item label="所属产品" prop="productId">
+							<el-select v-model="productId" filterable placeholder="请选择产品">
+								<el-option v-for="item in productData" :key="item.id" :label="item.name" :value="item.id.toString()" value-key="id">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item label="所属模块" prop="productId" class="ml10">
+							<el-select v-model="productId" filterable placeholder="请选择所属模块">
+								<el-option v-for="item in productData" :key="item.id" :label="item.name" :value="item.id.toString()" value-key="id">
+								</el-option>
+							</el-select>
+						</el-form-item>
+					</div>
+					<div >
+						<el-row>
+						<el-col :span="12">
+							<div class="data-box">
+								<div class="title">升级成功率目标版本1.0</div>
+							</div>
+						</el-col>
+						<el-col :span="12">
+							<div class="data-box">
+								<div class="title">源版本总分布(包含成功/失败)</div>
+
+							</div>
+
+						</el-col>
+					</el-row>
+					<el-row>
+						<el-col :span="12">
+							<div class="data-box">
+								<div class="title">成功源版本分布</div>
+							</div>
+						</el-col>
+						<el-col :span="12">
+							<div class="data-box">
+								<div class="title">失败源版本分布</div>
+
+							</div>
+
+						</el-col>
+					</el-row>
+					<el-row>
+						<el-col :span="12">
+							<div class="data-box">
+								<div class="title">失败原因分布</div>
+							</div>
+						</el-col>
+						
+					</el-row>
+					</div>
+				</el-tab-pane>
+			
+			</el-tabs>
+
+	
+
+	</el-card>
+</template>
+  
+<script lang="ts" setup>
+import * as echarts from 'echarts';
+
+import api from '/@/api/ota';
+import { ElMessageBox, ElMessage, FormInstance } from 'element-plus';
+import { ref } from 'vue';
+import { useRouter } from 'vue-router';
+
+const router = useRouter();
+const activeTab=ref('tab1');
+const homePieRef = ref();
+
+
+
+</script>
+<style scoped lang="scss">
+.data-box{
+    padding: 10px;
+    border: 1px solid #eee;
+	margin: 10px;
+	min-height: 300px;
+	.title{
+		margin-left: 10px;
+	}
+
+}
+</style>
+  

+ 1 - 1
src/views/iot/ota-update/module/edit.vue

@@ -54,7 +54,7 @@ const productData=ref([{
 const baseForm = {
 	id: undefined,
 	name: '',
-	productId: 0,
+	productId: '',
 	nameAs: '',
 	describe: '',
 };

+ 3 - 2
src/views/iot/ota-update/update/detail.vue

@@ -12,7 +12,7 @@
 			</div>
 			<div class="container">
 				<div class="item">签名算法:{{detail.are}}</div>
-				<div class="item">模块名称:default</div>
+				<div class="item">模块名称:{{detail.moduleName}}</div>
 			</div>
 			<!-- <div class="mt20"></div>
 			<div class="status_list">
@@ -90,12 +90,13 @@ export default defineComponent({
 				'name':'',
 				'typo':1,
 				'are':'',
+				'moduleName':''
 			},
 			
 		})
 		const getDetail = () => {
 			const id = route.params && route.params.id
-			api.manage.detail(id).then((res: any) => {
+			api.manage.detail(Number(id)).then((res: any) => {
 				state.detail = res
 			})
 		}

+ 7 - 5
src/views/iot/ota-update/update/index.vue

@@ -3,8 +3,8 @@
 	<el-card shadow="hover">
 		<div class="search">
 			<el-form :inline="true" ref="queryRef">
-				<el-form-item label="升级包名称:" prop="name">
-					<el-input v-model="params.keyWord" placeholder="请输入产品名称" clearable size="default" style="width: 240px"
+				<el-form-item label="升级包名称:" prop="keyWord">
+					<el-input v-model="params.keyWord" placeholder="请输入升级包名称" clearable size="default" style="width: 240px"
 						@keyup.enter.native="getList" />
 				</el-form-item>
 
@@ -94,10 +94,12 @@ const toDetail = (id: number) => {
 
 const CheckUpdate= async (row?: any) => {
 	if (row) {
-		checkFormRef.value.open(row);
+		let array={
+			productId:row.productId,
+			devOtaFirewareId:row.id
+		}
+		checkFormRef.value.open(array);
 		return;
-	} else {
-		checkFormRef.value.open();
 	}
 };