gemercheung 1 gadu atpakaļ
vecāks
revīzija
7f3c0957d5

+ 2 - 2
src/app/fire/constant.ts

@@ -4,8 +4,8 @@ import ico from "@/assets/image/fire.ico";
 import { fireDeptId } from "@/constant/appDeptId";
 
 export const appConstant: AppConstant = {
-  title: "消防火调三维远程勘验平台",
-  desc: "Three-dimensional remote prospecting platform for fire scenes",
+  title: "新疆消防救援总队火灾现场重建平台",
+  desc: "",
   ico,
   banner,
   name: "fire",

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

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

+ 8 - 0
src/assets/image/arrow_active.svg

@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+	<title>
+		Artboard-12
+	</title>
+	<g id="Up-3" data-name="Up">
+		<path d="M19.707,9.293l-7-7a1,1,0,0,0-1.414,0l-7,7A1,1,0,0,0,5,11H8V21a1,1,0,0,0,1,1h6a1,1,0,0,0,1-1V11h3a1,1,0,0,0,.707-1.707Z" style="fill:#95d475" />
+	</g>
+</svg>

+ 1 - 0
src/components/head/index.vue

@@ -72,6 +72,7 @@ const show = ref(true);
     overflow: hidden;
     height: 42px;
   }
+  
 
   &.show {
     padding-bottom: 16px;

+ 1 - 0
src/core/Scene.js

@@ -25,6 +25,7 @@ export default class Scene extends Mitt {
       this.renderer = new THREE.WebGLRenderer({
         canvas: this.domElement,
         antialias: true,
+        autoClear: true,
       });
 
       this.width = this.domElement.clientWidth;

+ 4 - 1
src/core/box/object/CircleTextLabel.js

@@ -39,7 +39,7 @@ export default class CircleTextLabel extends THREE.Mesh {
 
     this.userData = text;
 
-    const edges = new THREE.EdgesGeometry(g, 50);
+    const edges = new THREE.EdgesGeometry(g);
 
     const geometry = new LineGeometry();
     geometry.fromEdgesGeometry(edges);
@@ -47,6 +47,9 @@ export default class CircleTextLabel extends THREE.Mesh {
     const line_m = new LineMaterial({
       color: 0xe44d54,
       linewidth: 5,
+      dashed: false,
+      dashScale : 0.1,
+      alphaToCoverage: false,
     });
 
     line_m.resolution.set(window.innerWidth, window.innerHeight);

+ 0 - 2
src/core/box/object/ImgLabel.js

@@ -1,8 +1,6 @@
 import * as THREE from "three";
 import TouchEdge from "./TouchEdge";
 
-
-
 export default class ImgLabel extends THREE.Mesh {
   constructor(texture, matLine, isHorizontal = true) {
     let width, height, p;

+ 6 - 0
src/router/config.ts

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

+ 1 - 0
src/router/routeName.ts

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

+ 58 - 0
src/view/firmware/index.vue

@@ -0,0 +1,58 @@
+<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";
+const tableData = ref();
+import { useScenePaggingParams } from "./paging";
+const headOptions = [
+  { value: 1, name: "双目转台" },
+  { value: 2, name: "激光转台" },
+  { value: 3, name: "激光移动" },
+];
+const params = useScenePaggingParams();
+</script>

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

@@ -0,0 +1,56 @@
+import { usePagging } from "@/hook/pagging";
+import { SceneType, getScenePagging } from "@/store/scene";
+import { computed, reactive, watch, watchEffect } from "vue";
+
+export const useScenePaggingParams = () => {
+  const pagging = usePagging({
+    get: getScenePagging,
+    paramsTemlate: {
+      type: SceneType.SWKJ,
+      sceneName: "",
+      modelTitle: "",
+      deptId: "",
+      snCode: "",
+    },
+  });
+
+  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"];

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

@@ -1,5 +1,6 @@
 <template>
   <div class="slide">
+    <!-- {{ routes }} -->
     <el-menu
       :default-active="(router.currentRoute.value.name as string)"
       @select="(name: string) => router.push({ name })"
@@ -23,6 +24,7 @@ import { FireRouteName } from "@/app/fire/routeConfig";
 const props = defineProps<{ names: string[] }>();
 
 const routes = getPermissionRoutes(props.names, [
+  RouteName.firmware,
   RouteName.setting,
   FireRouteName.recycle,
 ]);

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

@@ -1,5 +1,8 @@
 <template>
-  <div class="system-layer" :style="{ backgroundImage: `url(${appConstant.banner})` }">
+  <div
+    class="system-layer"
+    :style="{ backgroundImage: `url(${appConstant.banner})` }"
+  >
     <div class="content">
       <component :is="component" />
     </div>

+ 2 - 1
src/view/system/login.vue

@@ -59,7 +59,8 @@
         </el-form-item>
 
         <div class="more">
-          <a @click="$router.push({ name: 'forget' })">忘记密码</a>
+          <!-- <a @click="$router.push({ name: 'forget' })">忘记密码</a> -->
+          平台用户由总队创建
         </div>
       </el-form>
     </div>

+ 3 - 3
src/view/system/updatePsw.vue

@@ -8,9 +8,9 @@
     <el-form-item label="手机号:" class="mandatory">
       <el-input v-model="data.phone" placeholder="请输入手机号码" disabled></el-input>
     </el-form-item>
-    <el-form-item label="验证码:" class="mandatory">
+    <el-form-item label="旧密码:" class="mandatory">
       <el-input v-model="data.code" placeholder="请输入验证码">
-        <template v-slot:suffix>
+        <!-- <template v-slot:suffix>
           <el-button
             type="primary"
             plain
@@ -24,7 +24,7 @@
                 : "获取验证码"
             }}
           </el-button>
-        </template>
+        </template> -->
       </el-input>
     </el-form-item>
     <el-form-item label="新密码:" class="mandatory">