bill 1 rok temu
rodzic
commit
c51ccb929c

+ 5 - 4
src/request/index.ts

@@ -163,6 +163,7 @@ export type ScenePageProps = PageProps<{
   title?: string;
   cameraType?: number;
   algorithmTime?: [Date, Date];
+  shootTime?: [Date, Date];
   endTime?: string;
   sceneSource?: number;
   snCode?: string;
@@ -176,11 +177,11 @@ export const scenePageFetch = (props: ScenePageProps) =>
       ...props,
       algorithmTime: null,
       startTime:
-        props.algorithmTime &&
-        dateFormat(props.algorithmTime[0], "yyyy-MM-dd 00:00:00"),
+        props.shootTime &&
+        dateFormat(props.shootTime[0], "yyyy-MM-dd 00:00:00"),
       endTime:
-        props.algorithmTime &&
-        dateFormat(props.algorithmTime[1], "yyyy-MM-dd 23:59:59"),
+        props.shootTime &&
+        dateFormat(props.shootTime[1], "yyyy-MM-dd 23:59:59"),
     }),
   });
 

+ 2 - 2
src/router.ts

@@ -109,7 +109,7 @@ export const setDocTitle = (title: string) => {
 watchEffect(() => {
   const routeName = router.currentRoute.value.name?.toString();
   if (routeName === "login" && userStatus.value === UserStatus.LOGINED) {
-    router.replace({ name: "relics" });
+    router.replace({ name: "scene" });
   } else if (
     routeName &&
     routeName !== "login" &&
@@ -123,7 +123,7 @@ watchEffect(() => {
 router.beforeEach((to, _, next) => {
   if (!to.name || to.name === "main-layout") {
     if (userStatus.value !== UserStatus.NOT_LOGIN) {
-      router.replace({ name: "relics" });
+      router.replace({ name: "scene" });
     } else {
       router.replace({ name: "login" });
     }

+ 28 - 0
src/style.scss

@@ -17,4 +17,32 @@ body,
 .disable {
   opacity       : 0.7;
   pointer-events: none;
+}
+
+.relics-layout {
+  height        : 100%;
+  display       : flex;
+  flex-direction: column;
+  overflow      : hidden !important;
+
+  .relics-header {
+    flex: none;
+  }
+
+  .relics-content {
+    flex    : 1;
+    position: relative;
+
+    .el-table {
+      position: absolute;
+      left    : 0;
+      top     : 0;
+      width   : 100%;
+      height  : 100%;
+    }
+  }
+
+  .pag-layout {
+    flex: none;
+  }
 }

+ 26 - 24
src/view/device.vue

@@ -32,35 +32,37 @@
       </div>
     </div>
 
-    <el-table :data="relicsArray" border>
-      <el-table-column label="SN码" prop="cameraSn"></el-table-column>
+    <div class="relics-content">
+      <el-table :data="relicsArray" border>
+        <el-table-column label="SN码" prop="cameraSn"></el-table-column>
 
-      <el-table-column
-        label="设备类型"
-        prop="snCode"
-        v-slot:default="{ row }: { row: Device }"
-      >
-        {{ DeviceTypeDesc[row.cameraType] }}
-      </el-table-column>
-      <!-- <el-table-column label="所属单位" prop="deptId"></el-table-column> -->
-      <el-table-column label="绑定账号" prop="userName"> </el-table-column>
-      <el-table-column label="创建人" prop="createBy"> </el-table-column>
-      <el-table-column label="创建时间" prop="createTime" v-slot:default="{ row }">
-        {{ row.createTime && row.createTime.substr(0, 16) }}
-      </el-table-column>
+        <el-table-column
+          label="设备类型"
+          prop="snCode"
+          v-slot:default="{ row }: { row: Device }"
+        >
+          {{ DeviceTypeDesc[row.cameraType] }}
+        </el-table-column>
+        <!-- <el-table-column label="所属单位" prop="deptId"></el-table-column> -->
+        <el-table-column label="绑定账号" prop="userName"> </el-table-column>
+        <el-table-column label="创建人" prop="createBy"> </el-table-column>
+        <el-table-column label="创建时间" prop="createTime" v-slot:default="{ row }">
+          {{ row.createTime && row.createTime.substr(0, 16) }}
+        </el-table-column>
 
-      <el-table-column label="操作" width="100px" fixed="right">
-        <template #default="{ row }">
-          <el-button link type="danger" @click="delHandler(row.cameraId)" size="small">
-            删除
-          </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+        <el-table-column label="操作" width="100px" fixed="right">
+          <template #default="{ row }">
+            <el-button link type="danger" @click="delHandler(row.cameraId)" size="small">
+              删除
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
     <div class="pag-layout">
       <el-pagination
         background
-        layout="prev, pager, next, sizes, jumper"
+        layout="total, prev, pager, next, sizes, jumper"
         v-model:page-size="pageProps.pageSize"
         :page-sizes="[10, 20, 50, 100]"
         :total="total"

+ 18 - 9
src/view/login.vue

@@ -31,7 +31,7 @@
             </div>
           </div>
           <el-form class="panel login" :model="form" @submit.stop>
-            <h2>欢迎登录</h2>
+            <h2>登录</h2>
             <el-form-item class="panel-form-item">
               <p class="err-info">{{ verification.phone }}</p>
               <el-input
@@ -47,7 +47,7 @@
                 v-model="form.psw"
                 :maxlength="16"
                 placeholder="密码"
-                :type="flag ? 'password' : 'text'"
+                :type="flag ? 'text' : 'password'"
                 @keydown.enter="submitClick"
               >
                 <template v-slot:suffix>
@@ -60,7 +60,8 @@
             </el-form-item>
 
             <el-form-item class="panel-form-item" style="user-select: none">
-              <dragVerify
+              <DragVerify
+                ref="verify"
                 :class="{ passing: isPassing2 }"
                 :isPassing="isPassing2"
                 @passcallback="isPassing2 = true"
@@ -75,14 +76,18 @@
                 <template v-slot:handlerIcon>
                   <el-icon
                     :size="20"
-                    style="width: 20px; display: inline-block"
-                    :style="{ 'margin-top': !isPassing2 ? '8px' : '2px' }"
+                    style="
+                      width: 20px;
+                      display: inline-block;
+                      line-height: 20px;
+                      margin-top: 8px;
+                    "
                   >
                     <DArrowRight v-if="!isPassing2" />
                     <SuccessFilled v-else />
                   </el-icon>
                 </template>
-              </dragVerify>
+              </DragVerify>
             </el-form-item>
 
             <el-form-item class="panel-form-item">
@@ -104,7 +109,7 @@ import { login } from "@/store/user";
 import { ElMessage } from "element-plus";
 import { router } from "@/router";
 import qrCode from "qrcode";
-import dragVerify from "@/components/drag-verify.vue";
+import DragVerify from "@/components/drag-verify.vue";
 
 const PHONE = {
   REG: /^1(3|4|5|6|7|8|9)\d{9}$/,
@@ -112,7 +117,8 @@ const PHONE = {
   tip: "手机号格式不正确!",
 };
 // 是否显示明文密码
-const flag = ref(true);
+const flag = ref(false);
+const verify = ref<any>();
 const isPassing2 = ref(false);
 // 表单
 const form = reactive({
@@ -151,6 +157,7 @@ qrCode.toString(
 
 // 表单提交
 const submitClick = async () => {
+  console.log(verify.value, verify.value.reset);
   if (!isPassing2.value) {
     return ElMessage.error("登录需要拖拽验证");
   }
@@ -161,10 +168,12 @@ const submitClick = async () => {
 
   try {
     await login({ phoneNum: form.phone, password: form.psw });
-    router.replace("relics");
+    router.replace("scene");
   } catch (e) {
     console.error(e);
   }
+  verify.value.reset();
+  isPassing2.value = false;
 };
 </script>
 

+ 1 - 1
src/view/map/pc4Helper.ts

@@ -31,7 +31,7 @@ export const exportFile = async (points: ScenePoint[], type: number) => {
     await downloadPointsXLSL2(
       points.map((point) => point.pos),
       points.map((point) => ({ title: point.name, desc: point.name })),
-      "本边界坐标"
+      "本边界坐标"
     );
   } else {
     await downloadPointsXLSL(

+ 1 - 1
src/view/quisk.ts

@@ -14,5 +14,5 @@ export const deviceEdit = quiskMountFactory(DeviceEdit, {
 
 export const selectScenes = quiskMountFactory(SceneSelect, {
   title: "选择场景",
-  width: 900,
+  width: 1000,
 });

+ 54 - 49
src/view/relics.vue

@@ -43,58 +43,63 @@
       </div> -->
     </div>
 
-    <el-table :data="relicsArray" border>
-      <el-table-column prop="name" label="文物保护单位名称" />
-      <el-table-column prop="unicode" label="文物编号" />
-      <el-table-column
-        prop="name"
-        label="文物级别"
-        v-slot:default="{ row }: { row: Relics }"
-      >
-        {{ relicsLevelDesc[row.level!] }}
-      </el-table-column>
-      <el-table-column prop="name" label="类别" v-slot:default="{ row }: { row: Relics }">
-        {{ relicsTypeDesc[row.category!] }}
-      </el-table-column>
-      <el-table-column prop="address" label="文物地址" />
-      <el-table-column label="创建时间" prop="createTime" v-slot:default="{ row }">
-        {{ row.createTime && row.createTime.substr(0, 16) }}
-      </el-table-column>
-      <el-table-column prop="userName" label="创建人" />
-      <el-table-column
-        prop="creationMethod"
-        label="创建方式"
-        v-slot:default="{ row }: { row: Relics }"
-      >
-        {{ creationMethodDesc[row.creationMethod!] }}
-        {{}}
-      </el-table-column>
-      <el-table-column label="操作" width="240" fixed="right">
-        <template #default="{ row }">
-          <el-button link type="primary" size="small" @click="shareHandler(row)">
-            文物链接
-          </el-button>
-          <el-button link type="primary" size="small" @click="editHandler(row)">
-            编辑
-          </el-button>
-          <el-button
-            link
-            type="primary"
-            size="small"
-            @click="router.push({ name: 'map', params: { relicsId: row.relicsId } })"
-          >
-            数据提取
-          </el-button>
-          <el-button link type="danger" @click="delHandler(row.relicsId)" size="small">
-            删除
-          </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+    <div class="relics-content">
+      <el-table :data="relicsArray" border>
+        <el-table-column prop="name" label="文物保护单位名称" />
+        <el-table-column prop="unicode" label="文物编号" />
+        <el-table-column
+          prop="name"
+          label="文物级别"
+          v-slot:default="{ row }: { row: Relics }"
+        >
+          {{ relicsLevelDesc[row.level!] }}
+        </el-table-column>
+        <el-table-column
+          prop="name"
+          label="类别"
+          v-slot:default="{ row }: { row: Relics }"
+        >
+          {{ relicsTypeDesc[row.category!] }}
+        </el-table-column>
+        <el-table-column prop="address" label="文物地址" />
+        <el-table-column label="创建时间" prop="createTime" v-slot:default="{ row }">
+          {{ row.createTime && row.createTime.substr(0, 16) }}
+        </el-table-column>
+        <el-table-column prop="userName" label="创建人" />
+        <el-table-column
+          prop="creationMethod"
+          label="创建方式"
+          v-slot:default="{ row }: { row: Relics }"
+        >
+          {{ creationMethodDesc[row.creationMethod!] }}
+        </el-table-column>
+        <el-table-column label="操作" width="240" fixed="right">
+          <template #default="{ row }">
+            <el-button link type="primary" size="small" @click="shareHandler(row)">
+              文物链接
+            </el-button>
+            <el-button link type="primary" size="small" @click="editHandler(row)">
+              编辑
+            </el-button>
+            <el-button
+              link
+              type="primary"
+              size="small"
+              @click="router.push({ name: 'map', params: { relicsId: row.relicsId } })"
+            >
+              数据提取
+            </el-button>
+            <el-button link type="danger" @click="delHandler(row.relicsId)" size="small">
+              删除
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
     <div class="pag-layout">
       <el-pagination
         background
-        layout="prev, pager, next, sizes, jumper"
+        layout="total, prev, pager, next, sizes, jumper"
         v-model:page-size="pageProps.pageSize"
         :page-sizes="[10, 20, 50, 100]"
         :total="total"

+ 7 - 5
src/view/scene-select.vue

@@ -1,9 +1,11 @@
 <template>
-  <SceneTable :tableProps="tableProps" simple>
-    <template v-slot:table>
-      <el-table-column type="selection" width="55" />
-    </template>
-  </SceneTable>
+  <div style="height: 550px">
+    <SceneTable :tableProps="tableProps" simple>
+      <template v-slot:table>
+        <el-table-column type="selection" width="55" />
+      </template>
+    </SceneTable>
+  </div>
 </template>
 
 <script lang="ts" setup>

+ 47 - 45
src/view/scene.vue

@@ -3,7 +3,7 @@
     <div class="relics-header">
       <div class="search">
         <el-form label-width="100px" inline>
-          <el-form-item label="场景名称:">
+          <el-form-item label="场景标题:">
             <el-input
               clearable
               v-model="pageProps.sceneName"
@@ -41,7 +41,7 @@
               <el-date-picker
                 clearable
                 type="daterange"
-                v-model="pageProps.algorithmTime"
+                v-model="pageProps.shootTime"
                 start-placeholder="请选择"
                 end-placeholder="请选择"
                 range-separator="-"
@@ -68,52 +68,54 @@
       </div>
     </div>
 
-    <el-table
-      :data="sceneArray"
-      border
-      @selection-change="(val) => tableProps && tableProps.selectionChange(val)"
-      :ref="(table) => tableProps && (tableProps.tableRef.value = table)"
-    >
-      <slot name="table"></slot>
-      <el-table-column label="场景标题" prop="sceneName"></el-table-column>
-      <el-table-column label="场景类型" prop="snCode" v-slot:default="{ row }">
-        {{ SceneTypeDesc[row.cameraType as SceneType] }}
-      </el-table-column>
-      <el-table-column label="场景码" prop="sceneCode"></el-table-column>
-      <el-table-column label="sn" prop="snCode"></el-table-column>
-      <el-table-column label="设备类型" prop="snCode" v-slot:default="{ row }">
-        {{ DeviceTypeDesc[row.cameraType as DeviceType] }}
-      </el-table-column>
-      <el-table-column label="拍摄时间" prop="algorithmTime" v-slot:default="{ row }">
-        {{ row.createTime && row.createTime.substr(0, 16) }}
-      </el-table-column>
-      <el-table-column label="计算完成时间" prop="createTime" v-slot:default="{ row }">
-        {{ row.algorithmTime && row.algorithmTime.substr(0, 16) }}
-      </el-table-column>
-      <el-table-column label="点位数量" prop="shootCount"></el-table-column>
-      <el-table-column label="拍摄位置" prop="gpsInfo"></el-table-column>
-      <el-table-column label="绑定账号" prop="userName"></el-table-column>
-      <el-table-column label="状态" v-slot:default="{ row }">
-        {{ SceneStatusDesc[(row.calcStatus as SceneStatus)] }}
-      </el-table-column>
-      <el-table-column label="操作" width="150" fixed="right" v-if="!simple">
-        <template #default="{ row }">
-          <el-button link type="primary" size="small" @click="gotoScene(row, false)">
-            查看
-          </el-button>
-          <el-button link type="primary" size="small" @click="gotoScene(row, true)">
-            编辑
-          </el-button>
-          <el-button link type="danger" @click="delHandler(row.sceneId)" size="small">
-            删除
-          </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+    <div class="relics-content">
+      <el-table
+        :data="sceneArray"
+        border
+        @selection-change="(val) => tableProps && tableProps.selectionChange(val)"
+        :ref="(table) => tableProps && (tableProps.tableRef.value = table)"
+      >
+        <slot name="table"></slot>
+        <el-table-column label="场景标题" prop="sceneName"></el-table-column>
+        <el-table-column label="场景类型" prop="snCode" v-slot:default="{ row }">
+          {{ SceneTypeDesc[row.cameraType as SceneType] }}
+        </el-table-column>
+        <el-table-column label="场景码" prop="sceneCode"></el-table-column>
+        <el-table-column label="SN码" prop="snCode"></el-table-column>
+        <el-table-column label="设备类型" prop="snCode" v-slot:default="{ row }">
+          {{ DeviceTypeDesc[row.cameraType as DeviceType] }}
+        </el-table-column>
+        <el-table-column label="拍摄时间" prop="algorithmTime" v-slot:default="{ row }">
+          {{ row.shootTime && row.shootTime.substr(0, 16) }}
+        </el-table-column>
+        <el-table-column label="计算完成时间" prop="createTime" v-slot:default="{ row }">
+          {{ row.algorithmTime && row.algorithmTime.substr(0, 16) }}
+        </el-table-column>
+        <el-table-column label="点位数量" prop="shootCount"></el-table-column>
+        <el-table-column label="拍摄位置" prop="gpsInfo"></el-table-column>
+        <el-table-column label="绑定账号" prop="userName"></el-table-column>
+        <el-table-column label="状态" v-slot:default="{ row }">
+          {{ SceneStatusDesc[(row.calcStatus as SceneStatus)] }}
+        </el-table-column>
+        <el-table-column label="操作" width="150" fixed="right" v-if="!simple">
+          <template #default="{ row }">
+            <el-button link type="primary" size="small" @click="gotoScene(row, false)">
+              查看
+            </el-button>
+            <el-button link type="primary" size="small" @click="gotoScene(row, true)">
+              编辑
+            </el-button>
+            <el-button link type="danger" @click="delHandler(row.sceneId)" size="small">
+              删除
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
     <div class="pag-layout">
       <el-pagination
         background
-        layout="prev, pager, next, sizes, jumper"
+        layout="total, prev, pager, next, sizes, jumper"
         v-model:page-size="pageProps.pageSize"
         :page-sizes="[10, 20, 50, 100]"
         :total="total"