bill 8 months ago
parent
commit
a297b5ffcf

+ 27 - 3
src/view/artifact-scenes/index.vue

@@ -1,6 +1,8 @@
 <template>
   <div class="layout">
-    <div class="left">场景管理</div>
+    <div class="left">
+      <div><Icon style="color: currentColor" /><span>场景管理</span></div>
+    </div>
     <div class="relics-content">
       <div class="search" style="text-align: right; padding-bottom: 20px">
         <el-button type="primary" @click="gotoSplit">分屏对比</el-button>
@@ -65,6 +67,7 @@
 </template>
 
 <script setup lang="ts">
+import Icon from "@/assets/icon/cjgl_active.svg";
 import Layout from "@/view/layout/nav.vue";
 import TexToolTip from "@/components/tex-tooltip.vue";
 import {
@@ -76,11 +79,12 @@ import {
   SceneTypeDesc,
 } from "@/store/scene";
 import { dateFormat } from "@/util";
-import { computed, ref, watch } from "vue";
+import { computed, onUnmounted, ref, watch } from "vue";
 import { router, setDocTitle } from "@/router";
 import { delSceneFetch, repSceneFetch, sendFetch } from "@/request";
 import { ElMessageBox } from "element-plus";
 import { selectScenes } from "../quisk";
+import { sysTitle } from "../layout/var";
 
 const scenes = ref<Scene[]>([]);
 const relicsId = computed(() => (router.currentRoute.value.params.id as unknown) as any);
@@ -93,12 +97,15 @@ const fetchScenes = async () => {
     return router.replace({ name: "scene" });
   }
   setDocTitle(res.projectName);
+
+  sysTitle.value = res.projectName;
   scenes.value = res.sceneList.map((item) => ({
     ...item,
     sceneCode: item.num,
     sceneSource: SceneType.CLUNT,
   }));
 };
+onUnmounted(() => (sysTitle.value = ""));
 watch(relicsId, fetchScenes, { immediate: true });
 
 const delHandler = async (scene: Scene) => {
@@ -131,7 +138,7 @@ const gotoSplit = () => {
 };
 </script>
 
-<style scoped>
+<style scoped lang="scss">
 .layout {
   display: flex;
   width: 100%;
@@ -143,9 +150,26 @@ const gotoSplit = () => {
   width: 200px;
   flex: 0 0 auto;
   border-right: 1px solid var(--el-border-color);
+  color: var(--el-menu-active-color);
+
+  div {
+    font-size: var(--el-menu-item-font-size);
+    align-items: center;
+    display: flex;
+  }
+
+  span {
+    margin-left: 8px;
+  }
 }
 .relics-content {
   margin: 8px;
   flex: 1;
 }
 </style>
+
+<style>
+.left path {
+  fill: currentColor;
+}
+</style>

+ 15 - 0
src/view/artifacts/addArtifacts.vue

@@ -5,6 +5,7 @@
         v-model.trim="data.artifactName"
         style="width: 100%"
         :maxlength="100"
+        show-word-limit
         placeholder="请输入"
       />
     </el-form-item>
@@ -17,6 +18,7 @@
       <el-input
         v-model.trim="data.artifactAge"
         style="width: 100%"
+        show-word-limit
         :maxlength="100"
         placeholder="请输入"
       />
@@ -28,6 +30,7 @@ import { QuiskExpose } from "@/helper/mount.ts";
 import { computed, ref } from "vue";
 import { relicsTypeDesc } from "@/store/relics.ts";
 import { addRelicsFetch } from "@/request";
+import { ElMessage } from "element-plus";
 // import {ElMessage} from "element-plus";
 
 const props = defineProps<{
@@ -47,6 +50,18 @@ if (props.data) {
 defineExpose<QuiskExpose>({
   title: computed(() => `新增文物`),
   async submit() {
+    if (!data.value.artifactName.trim()) {
+      ElMessage.error({ message: "请填写文物名称" });
+      throw "请填写文物名称";
+    }
+    if (!data.value.artifactTypeId.trim()) {
+      ElMessage.error({ message: "请选择文物类别" });
+      throw "请选择文物类别";
+    }
+    if (!data.value.artifactAge.trim()) {
+      ElMessage.error({ message: "请填写时代" });
+      throw "请填写时代";
+    }
     props.submit(data.value);
   },
 });

+ 3 - 1
src/view/layout/nav.vue

@@ -12,7 +12,7 @@
 
         <span v-if="!name" class="logo-wrapper">
           <img class="sp" src="/image/logo_sp.png" alt="logo" />
-          <span>文物遗产监测巡检平台</span>
+          <span>{{ sysTitle || "文物遗产监测巡检平台" }}</span>
         </span>
       </span>
       <div class="right-panel" v-if="user && !['pano', 'map'].includes(name)">
@@ -76,6 +76,7 @@ import { usersPasswordEdit } from "@/view/quisk";
 import avatarDefault from "@/assets/avatar.png";
 import { UserType, changePassword } from "@/request";
 import { UserStatus, userStatus } from "@/store/user";
+import { sysTitle } from "./var";
 const name = computed(() => router.currentRoute.value.meta?.navClass as string);
 const routeName = computed(() => router.currentRoute.value.name as string);
 let isLogout = false;
@@ -87,6 +88,7 @@ const logoutHandler = () => {
   userStatus.value = UserStatus.NOT_LOGIN;
   router.replace({ name: "login" });
 };
+
 const passwordHandler = async () => {
   const userObj = reactive<UserType>({
     orgName: "",

+ 3 - 3
src/view/layout/slide/index.vue

@@ -31,31 +31,31 @@ const isSuper = computed(
 const isORG = computed(() => user.value.type === 1);
 const normal_name = [
   "scene",
+  "artifacts",
   // "relics",
   // "device",
   "organization",
-  "artifacts",
   "users",
   "no-persession",
 ];
 
 const normal_name_org = [
   "scene",
+  "artifacts",
   // "relics",
   // "device",
   "organization",
   "org-users",
-  "artifacts",
   "no-persession",
 ];
 const super_names = [
   "scene",
+  "artifacts",
   // "relics",
   // "device",
   "organization",
   "users",
   "org-users",
-  "artifacts",
   "no-persession",
 ];
 console.log("isSuper", isSuper.value);

+ 3 - 0
src/view/layout/var.ts

@@ -0,0 +1,3 @@
+import { ref } from "vue";
+
+export const sysTitle = ref('')

+ 1 - 1
src/view/relics-scene/index.vue

@@ -88,7 +88,7 @@ const fetchScenes = async () => {
   );
 
   if (!current.value && scenes.value.length) {
-    currentId.value = scenes.value[0].id;
+    currentId.value = scenes.value[scenes.value.length - 1].id;
   }
 };
 watch(relicsId, fetchScenes, { immediate: true });