Эх сурвалжийг харах

修复图片路径问题,更新表单提交逻辑

fxs 9 сар өмнө
parent
commit
6d50025a9a

+ 2 - 0
components.d.ts

@@ -7,6 +7,7 @@ export {}
 /* prettier-ignore */
 declare module 'vue' {
   export interface GlobalComponents {
+    DropDownSelection: typeof import('./src/components/toolsBtn/DropDownSelection.vue')['default']
     ElButton: typeof import('element-plus/es')['ElButton']
     ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
@@ -31,6 +32,7 @@ declare module 'vue' {
     ElText: typeof import('element-plus/es')['ElText']
     ElTooltip: typeof import('element-plus/es')['ElTooltip']
     FilterPopover: typeof import('./src/components/toolsBtn/FilterPopover.vue')['default']
+    HeaderCard: typeof import('./src/components/dataAnalysis/HeaderCard.vue')['default']
     IconIcBaselineVisibility: typeof import('~icons/ic/baseline-visibility')['default']
     IconIcBaselineVisibilityOff: typeof import('~icons/ic/baseline-visibility-off')['default']
     IconMaterialSymbolsLightLogout: typeof import('~icons/material-symbols-light/logout')['default']

BIN
dist.rar


+ 17 - 0
src/components/dataAnalysis/HeaderCard.vue

@@ -0,0 +1,17 @@
+<!--
+
+* @FileDescription: 用于数据展示页面的头部位置展示信息
+
+* @Author: FFF
+
+-->
+
+<script setup lang="ts">
+import DropDownSelection from '../toolsBtn/DropDownSelection.vue'
+</script>
+
+<template>
+  <DropDownSelection></DropDownSelection>
+</template>
+
+<style scoped></style>

+ 13 - 0
src/components/toolsBtn/DropDownSelection.vue

@@ -0,0 +1,13 @@
+<!--
+
+* @FileDescription: 下拉选择框,可用于分类字段或者切换平台等
+
+* @Author: FFF
+
+-->
+
+<script setup lang="ts"></script>
+
+<template></template>
+
+<style scoped></style>

+ 2 - 0
src/router/index.ts

@@ -25,7 +25,9 @@ const router = createRouter({
 
 router.beforeEach((to, from, next) => {
   if (from) {
+    // 毫无意义,但是不加from,会导致from没有使用从而导致打包错误
   }
+
   if (to.name === 'Login') {
     next()
   } else {

+ 10 - 0
src/types/dataAnalysis.ts

@@ -0,0 +1,10 @@
+export enum DropDownSelectFieldType {
+  TEXT = 'text',
+  IMG = 'img'
+}
+
+export interface FieldInfo {
+  fieldType: DropDownSelectFieldType
+  openShowList: boolean // 是否展开显示已选择的项目
+  fieldList: Array<any>
+}

+ 3 - 0
src/utils/common/img.ts

@@ -0,0 +1,3 @@
+export const getAssetsImageUrl = (url: string) => {
+  return new URL(`../../assets/${url}`, import.meta.url).href
+}

+ 8 - 2
src/views/Home/HomeView.vue

@@ -3,6 +3,7 @@ import { RouterView } from 'vue-router'
 import { ref } from 'vue'
 import { ElMessage } from 'element-plus'
 import router from '@/router'
+import { getAssetsImageUrl } from '@/utils/common/img'
 
 const isCollapse = ref(false)
 const menuList = [
@@ -46,6 +47,11 @@ const logOut = () => {
   localStorage.removeItem('refreshToken')
   router.push('/login')
 }
+
+const iconUrl = {
+  logo: getAssetsImageUrl('logo.svg'),
+  defaultHead: getAssetsImageUrl('default/defaultHead.png')
+}
 </script>
 
 <template>
@@ -53,7 +59,7 @@ const logOut = () => {
     <div class="sideBarBox">
       <el-menu :router="true" :default-active="$route.name" class="sideBar" :collapse="isCollapse">
         <el-menu-item index="/" class="logoBox">
-          <el-image :fit="'fill'" class="logoImg" src="/src/assets/logo.svg"></el-image>
+          <el-image :fit="'fill'" class="logoImg" :src="iconUrl.logo"></el-image>
           <template #title><span class="logoText">淳皓科技</span></template>
         </el-menu-item>
         <el-sub-menu v-for="item in menuList" :index="item.title">
@@ -72,7 +78,7 @@ const logOut = () => {
       <div class="headPortraitBox">
         <el-popover popper-class="headPopper" placement="bottom-end" trigger="click">
           <template #reference>
-            <el-image class="headPortrait" src="/src/assets/default/defaultHead.png"></el-image>
+            <el-image class="headPortrait" :src="iconUrl.defaultHead"></el-image>
           </template>
           <div class="userTools">
             <span class="userToolsItem" @click="logOut">

+ 9 - 5
src/views/Login/LoginView.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { onMounted, reactive } from 'vue'
+import { reactive } from 'vue'
 import type { RuleInfo } from '@/types/input'
 import { useRequest } from '@/hooks/useRequest'
 import router from '@/router'
@@ -7,6 +7,8 @@ import axiosInstance from '@/utils/axios/axiosInstance'
 import MyButton from '@/components/form/MyButton.vue'
 import MyInput from '@/components/form/MyInput.vue'
 
+import { getAssetsImageUrl } from '@/utils/common/img'
+
 const { AllApi, analysisResCode } = useRequest()
 
 interface LoginInfoType {
@@ -41,6 +43,8 @@ const userLogin = () => {
       .catch((err) => {
         console.log(err)
       })
+  } else {
+    console.log('不通过')
   }
 }
 
@@ -85,8 +89,7 @@ const formFieldsRules = reactive<{
   }
 })
 
-// 加载数据
-onMounted(() => {})
+const logoUrl = getAssetsImageUrl('logo.svg') // 转换一下logo的url
 </script>
 
 <template>
@@ -95,7 +98,7 @@ onMounted(() => {})
       <div class="banner"></div>
       <div class="logoBox">
         <div class="logoImg">
-          <el-image :fit="'fill'" class="logoImg" src="/src/assets/logo.svg"></el-image>
+          <el-image :fit="'fill'" class="logoImg" :src="logoUrl"></el-image>
         </div>
 
         <span class="logoText">淳皓科技</span>
@@ -104,7 +107,8 @@ onMounted(() => {})
         <div class="loginFormBox">
           <div class="loginFormTitle">登录淳皓游戏管理系统</div>
           <div class="loginFormSubTitle">登录管理系统</div>
-          <form class="loginForm">
+          <form class="loginForm" @submit.prevent>
+            <!-- 一定要阻止默认提交事件,不然会导致第一次自动跳转 -->
             <div class="loginFormItem">
               <MyInput
                 :p-input-type="'text'"