浏览代码

feat: save

gemercheung 1 年之前
父节点
当前提交
96a9b03655

+ 2 - 1
src/app/fire/routeConfig.ts

@@ -20,7 +20,8 @@ export const menuRouteNames = [
   FireRouteName.downloadLog,
   FireRouteName.setting,
   FireRouteName.recycle,
-  FireRouteName.firmware,
+  FireRouteName.cameraVersion,
+  FireRouteName.cameraVersionApp,
 ];
 
 export const routes: Routes = [

+ 12 - 3
src/request/urls.ts

@@ -247,6 +247,15 @@ export const caseApiUpdateSort = "/fusion-xj/caseImg/updateSort";
 
 export const getSysSetting = `/fusion-xj/systemSetting/info`;
 export const updateSysSetting = `/fusion-xj/systemSetting/save`;
-// 脚本管理
-export const getCaseScriptInfoUrl = `/fusion-xj/caseScript/info`;
-export const getCaseScriptSaveOrUpdateUrl = `/fusion-xj/caseScript/saveOrUpdate`;
+
+// 固件管理
+export const cameraVersionUpload = `/fusion-xj/cameraVersion/addAndUpload`;
+export const cameraVersionUpdate = `/fusion-xj/cameraVersion/update`;
+export const cameraVersionDelete = `/fusion-xj/cameraVersion/delete`;
+export const cameraVersionList = `/fusion-xj/cameraVersion/list`;
+
+// app管理
+export const cameraVersionAppUpload = `/fusion-xj/cameraVersionApp/addAndUpload`;
+export const cameraVersionAppUpdate = `/fusion-xj/cameraVersionApp/update`;
+export const cameraVersionAppDelete = `/fusion-xj/cameraVersionApp/delete`;
+export const cameraVersionAppList = `/fusion-xj/cameraVersionApp/list`;

+ 9 - 3
src/router/config.ts

@@ -98,11 +98,17 @@ export const routes: Routes = [
         meta: { title: "系统设置", icon: "icon-nav-setup" },
       },
       {
-        name: RouteName.firmware,
-        path: "firmware",
-        component: () => import("@/view/firmware/index.vue"),
+        name: RouteName.cameraVersion,
+        path: "cameraVersion",
+        component: () => import("@/view/cameraVersion/index.vue"),
         meta: { title: "固件管理", icon: "icon-nav-setup" },
       },
+      {
+        name: RouteName.cameraVersionApp,
+        path: "cameraVersionApp",
+        component: () => import("@/view/cameraVersionApp/index.vue"),
+        meta: { title: "APP管理", icon: "icon-nav-setup" },
+      },
     ],
   },
   {

+ 3 - 1
src/router/routeName.ts

@@ -17,7 +17,9 @@ export const RouteName = {
   sceneVisitor: "sceneVisitor",
   records: "records",
   setting: "setting",
-  firmware: "firmware",
+  // firmware: "firmware",
+  cameraVersion: "cameraVersion",
+  cameraVersionApp: "cameraVersionApp",
 } as const;
 
 type RouteNamesType = typeof RouteName;

+ 18 - 0
src/store/cameraVersion.ts

@@ -0,0 +1,18 @@
+import {
+  axios,
+  PaggingReq,
+  PaggingRes,
+  cameraVersionList
+
+} from "@/request";
+
+
+export type CameraVersionType = PaggingReq<{
+  version: string;
+  type: number;
+}>
+
+export const getCameraVersionList = (params: CameraVersionType) => {
+
+  return axios.post(cameraVersionList, params) as unknown as PaggingRes<{}>;
+}

+ 62 - 0
src/view/cameraVersion/index.vue

@@ -0,0 +1,62 @@
+<template>
+  <com-head :options="headOptions" v-model="params.pagging.state.query.type">
+    <el-form label-width="94px" inline>
+      <slot name="header" />
+      <el-form-item label="版本号">
+        <el-input placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item class="searh-btns" style="grid-area: 1 / 4 / 2 / 4">
+        <el-button type="primary" @click="params.pagging.refresh"
+          >查询</el-button
+        >
+        <el-button type="primary" plain @click="params.pagging.queryReset"
+          >重置</el-button
+        >
+      </el-form-item>
+    </el-form>
+  </com-head>
+
+  <div class="body-layer">
+    <slot name="content" />
+    <el-table
+      :data="tableData"
+      tooltip-effect="dark"
+      style="width: 100%"
+      size="large"
+    >
+      <el-table-column label="版本号" prop="deptName"></el-table-column>
+      <el-table-column
+        label="版本更新说明"
+        prop="deptLevelStr"
+      ></el-table-column>
+      <el-table-column label="最低版本号" prop="deptLevelStr"></el-table-column>
+      <el-table-column label="创建人" prop="deptLevelStr"></el-table-column>
+      <el-table-column label="创建时间" prop="deptLevelStr"></el-table-column>
+      <el-table-column label="状态" prop="deptLevelStr"></el-table-column>
+    </el-table>
+    <com-pagination
+      @size-change="params.pagging.changPageSize"
+      @current-change="params.pagging.changPageCurrent"
+      :current-page="params.pagging.state.pag.currentPage"
+      :page-size="params.pagging.state.pag.size"
+      :total="params.pagging.state.pag.total"
+    />
+  </div>
+</template>
+<script lang="ts" setup>
+import { ref } from "vue";
+import comHead from "@/components/head/index.vue";
+import comPagination from "@/components/pagination/index.vue";
+import { useScenePaggingParams } from "./paging";
+import { CameraType } from "@/store/camera";
+
+const tableData = ref();
+
+const headOptions = [
+  { value: CameraType.SWKJ, name: "双目转台" },
+  { value: CameraType.SWSS1, name: "激光转台" },
+  { value: CameraType.SWSS2, name: "激光移动" },
+];
+
+const params = useScenePaggingParams();
+</script>

+ 56 - 0
src/view/cameraVersion/paging.ts

@@ -0,0 +1,56 @@
+import { usePagging } from "@/hook/pagging";
+import { SceneType, getScenePagging } from "@/store/scene";
+import { getCameraVersionList } from '@/store/cameraVersion'
+import { computed, reactive, watch, watchEffect } from "vue";
+
+export const useScenePaggingParams = () => {
+
+  const pagging = usePagging({
+    get: getCameraVersionList,
+    paramsTemlate: {
+      type: SceneType.SWKJ,
+      version: '',
+    },
+  });
+
+  const isSwmx = computed(() => pagging.state.query.type === SceneType.SWMX);
+
+  const keyword = computed({
+    get: () =>
+      isSwmx.value
+        ? pagging.state.query.modelTitle
+        : pagging.state.query.sceneName,
+    set: (val: string) => {
+      pagging.state.query.modelTitle = val;
+      pagging.state.query.sceneName = val;
+    },
+  });
+
+  let oldSnCode = pagging.state.query.snCode;
+
+  watchEffect(() => {
+    if (isSwmx.value) {
+      oldSnCode = pagging.state.query.snCode;
+      pagging.state.query.snCode = "";
+    } else {
+      pagging.state.query.snCode = oldSnCode;
+    }
+  });
+
+  watch(
+    () => pagging.state.query.type,
+    () => {
+      pagging.state.pag.currentPage = 1;
+    }
+  );
+
+  const queryResetRaw = pagging.queryReset;
+  pagging.queryReset = () => {
+    const type = pagging.state.query.type;
+    queryResetRaw();
+    pagging.state.query.type = type;
+  };
+
+  return reactive({ pagging, keyword, isSwmx });
+};
+export type ScenePagging = ReturnType<typeof useScenePaggingParams>["pagging"];

+ 4 - 1
src/view/firmware/index.vue

@@ -1,5 +1,8 @@
 <template>
-  <com-head :options="headOptions" v-model="params.pagging.state.query.type">
+  <com-head
+    :options="[{ name: 'app管理', value: '1' }]"
+    class="app-head frame-head"
+  >
     <el-form label-width="94px" inline>
       <slot name="header" />
       <el-form-item label="版本号">

+ 1 - 0
src/view/firmware/paging.ts

@@ -28,6 +28,7 @@ export const useScenePaggingParams = () => {
   });
 
   let oldSnCode = pagging.state.query.snCode;
+
   watchEffect(() => {
     if (isSwmx.value) {
       oldSnCode = pagging.state.query.snCode;

+ 2 - 1
src/view/layout/slide/index.vue

@@ -24,7 +24,8 @@ import { FireRouteName } from "@/app/fire/routeConfig";
 const props = defineProps<{ names: string[] }>();
 
 const routes = getPermissionRoutes(props.names, [
-  RouteName.firmware,
+  RouteName.cameraVersion,
+  RouteName.cameraVersionApp,
   RouteName.setting,
   FireRouteName.recycle,
 ]);