Browse Source

feat:aibox

lvkun 2 năm trước cách đây
mục cha
commit
834cc654aa

+ 3 - 2
src/api/cvs/aiboxCloud.ts

@@ -129,10 +129,11 @@ export const getArg = (clientId: string) => {
   })
 }
 
-export const updateArg = (clientId: string) => {
+export const updateArg = (clientId: string, data: any) => {
   return request({
     url: `/aiBox/control/arg/${clientId}`,
-    method: 'PUT'
+    method: 'PUT',
+    data
   })
 }
 

+ 10 - 3
src/controller/cvs/aiboxCloudController.ts

@@ -1,8 +1,6 @@
 
 // aibox云端
-
-import { getSys } from '@/api/cvs/aibox'
-import { addFlow, getFlow, getTask, updateFlow, delFlow, addTask, updateTask, delTask, startTask, stopTask, getPLan, addPlan, delPLan, getAig, getTime, calibrationTime, getNet, getMeta } from '@/api/cvs/aiboxCloud'
+import { addFlow, getFlow, getTask, updateFlow, delFlow, addTask, updateTask, delTask, startTask, stopTask, getPLan, addPlan, delPLan, getAig, getTime, calibrationTime, getNet, getMeta, getArg, updateArg, getSys } from '@/api/cvs/aiboxCloud'
 import { message } from 'ant-design-vue'
 
 export class AiboxCloudController {
@@ -100,6 +98,15 @@ export class AiboxCloudController {
     return JSON.parse(JSON.parse(data.data).data).data
   }
 
+  static async arg () {
+    const data: any = await getArg(AiboxCloudController.clientId)
+    return JSON.parse(JSON.parse(data.data).data).data
+  }
+
+  static async updateArg (data: any) {
+    await updateArg(AiboxCloudController.clientId, data)
+  }
+
   static async time () {
     const data: any = await getTime(AiboxCloudController.clientId)
     return JSON.parse(JSON.parse(data.data).data).data

+ 125 - 1
src/pages/cvs/edge/arg.vue

@@ -1,7 +1,131 @@
 <template>
- arg
+  <a-card title="参数配置" >
+    <table-pro
+      :columns="columns"
+      :service="AiboxCloudController.arg"
+      ref="tableProDom"
+    >
+      <template #render="{ column, record }">
+        <template v-if="column.key === 'argName'">
+          <a-space>
+            <a-tag >{{record.argName}}</a-tag>
+          </a-space>
+        </template>
+        <template v-if="column.key === 'action'">
+          <a-space>
+            <a @click="openModal(record)" >修改参数</a>
+          </a-space>
+        </template>
+      </template>
+    </table-pro>
+  </a-card>
+
+<modal-pro
+  label="修改参数"
+  :open="state.visable"
+  @cancel="state.visable = false"
+  @ok="ok"
+>
+<a-form
+    :label-col="{ span: 6 }"
+    :wrapper-col="{ span: 14 }"
+  >
+    <a-form-item
+      label="参数标识"
+      v-bind="validateInfos.taskID"
+    >
+      <a-input  v-model:value="preferenceState.argNum" />
+    </a-form-item>
+    <a-form-item
+      label="参数名称"
+      v-bind="validateInfos.argName"
+    >
+      <a-input  v-model:value="preferenceState.argName" />
+    </a-form-item>
+    <a-form-item
+      label="参数值"
+    >
+      <a-input  v-model:value="preferenceState.argValue" />
+    </a-form-item>
+    <a-form-item
+      label="参数描述"
+      v-bind="validateInfos.argDescribe"
+    >
+      <a-input  v-model:value="preferenceState.argDescribe" />
+    </a-form-item>
+</a-form>
+</modal-pro>
+
 </template>
 <script lang='ts'  setup >
+import { AiboxCloudController } from '@/controller'
+import { Form } from 'ant-design-vue'
+import { reactive, ref } from 'vue'
+
+const columns = [
+  {
+    title: '参数标识',
+    dataIndex: 'argNum',
+    key: 'argNum'
+  },
+  {
+    title: '参数名称',
+    dataIndex: 'argName',
+    key: 'argName'
+  },
+  {
+    title: '参数值',
+    dataIndex: 'argValue',
+    key: 'argValue'
+  },
+  {
+    title: '参数描述',
+    dataIndex: 'argDescribe',
+    key: 'argDescribe'
+  },
+  {
+    title: '操作',
+    dataIndex: 'action',
+    key: 'action'
+  }
+]
+
+const tableProDom = ref()
+
+const state = reactive({
+  visable: false,
+  loading: false,
+  dataSource: [],
+  opraState: 'add'
+})
+
+const preferenceState = reactive({
+  argNum: '',
+  argName: '',
+  argValue: '',
+  argDescribe: ''
+})
+
+const useForm = Form.useForm
+
+const { resetFields, validate, validateInfos } = useForm(preferenceState, reactive({
+  argNum: [{ required: true, message: '请输入参数标识' }],
+  argName: [{ required: true, message: '请输入参数名称' }]
+}))
+
+const ok = () => {
+  validate().then(async () => {
+    await AiboxCloudController.updateArg(preferenceState)
+    tableProDom.value.reload()
+    state.visable = false
+    resetFields({})
+  }).catch(() => {})
+}
+
+const openModal = (record: any) => {
+  state.visable = true
+  resetFields(record)
+}
 
 </script>
 <style lang='less' scoped >

+ 34 - 11
src/pages/cvs/edge/list.vue

@@ -32,10 +32,29 @@
       <template v-if="column.key === 'action'" >
         <a-space>
           <a @click="getSys(record)">系统信息</a>
-          <a @click="pushTask(record)">任务</a>
-          <a @click="pushVideo(record)">视频</a>
-          <a @click="reboot(record)">重启</a>
           <a @click="openlevelUpModal(record)">算子升级</a>
+          <a-dropdown>
+            <a class="ant-dropdown-link" @click.prevent>
+              操作
+              <DownOutlined />
+            </a>
+            <template #overlay>
+              <a-menu>
+                <a-menu-item>
+                  <a href="javascript:;" @click="getMeta" >运行参数</a>
+                </a-menu-item>
+                <a-menu-item>
+                  <a href="javascript:;" @click="getTime" >运行时间</a>
+                </a-menu-item>
+                <a-menu-item>
+                  <a href="javascript:;" @click="calibrationTime">校准时间</a>
+                </a-menu-item>
+                <a-menu-item>
+                  <a href="javascript:;" @click="getNet">网络信息</a>
+                </a-menu-item>
+              </a-menu>
+            </template>
+          </a-dropdown>
         </a-space>
 
       </template>
@@ -98,7 +117,7 @@
 </a-card>
 </template>
 <script lang='ts' setup >
-import { AiboxController, OperatorController, SpaceController } from '@/controller'
+import { AiboxCloudController, AiboxController, OperatorController, SpaceController } from '@/controller'
 import dayjs from 'dayjs'
 import { onMounted, reactive, ref } from 'vue'
 import { useRouter } from 'vue-router'
@@ -193,20 +212,24 @@ const customRequest = (file) => {
 }
 
 const getSys = async (record: CVS.AiBox.AiBox) => {
-  sys.value = Object.assign({}, { ...await AiboxController.sys(record.clientId), clientId: record.clientId })
+  sys.value = Object.assign({}, { ...await AiboxCloudController.sys(), clientId: record.clientId })
   sysVisible.value = true
 }
 
-const reboot = async (record: CVS.AiBox.AiBox) => {
-  await AiboxController.reboot(record.clientId)
+const getMeta = () => {
+  AiboxCloudController.meta()
 }
 
-const pushTask = (record: CVS.AiBox.AiBox) => {
-  router.push({ path: '/cvs/edge/task', query: { clientId: record.clientId } })
+const getTime = () => {
+  AiboxCloudController.time()
 }
 
-const pushVideo = (record: CVS.AiBox.AiBox) => {
-  router.push({ path: '/cvs/edge/video', query: { clientId: record.clientId } })
+const calibrationTime = () => {
+  AiboxCloudController.calibrationTime()
+}
+
+const getNet = () => {
+  AiboxCloudController.net()
 }
 
 const levelUpOk = async () => {