Просмотр исходного кода

顶部导航栏添加返回按钮

Yue 2 лет назад
Родитель
Сommit
eb0b03a873

+ 58 - 1
auto-imports.d.ts

@@ -4,5 +4,62 @@
 // Generated by unplugin-auto-import
 export {}
 declare global {
-  const ElSelect: typeof import('element-plus/es')['ElSelect']
+
+}
+onst EffectScope: typeof import('vue')['EffectScope']
+  const computed: typeof import('vue')['computed']
+  const createApp: typeof import('vue')['createApp']
+  const customRef: typeof import('vue')['customRef']
+  const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
+  const defineComponent: typeof import('vue')['defineComponent']
+  const effectScope: typeof import('vue')['effectScope']
+  const getCurrentInstance: typeof import('vue')['getCurrentInstance']
+  const getCurrentScope: typeof import('vue')['getCurrentScope']
+  const h: typeof import('vue')['h']
+  const inject: typeof import('vue')['inject']
+  const isProxy: typeof import('vue')['isProxy']
+  const isReactive: typeof import('vue')['isReactive']
+  const isReadonly: typeof import('vue')['isReadonly']
+  const isRef: typeof import('vue')['isRef']
+  const markRaw: typeof import('vue')['markRaw']
+  const nextTick: typeof import('vue')['nextTick']
+  const onActivated: typeof import('vue')['onActivated']
+  const onBeforeMount: typeof import('vue')['onBeforeMount']
+  const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
+  const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
+  const onDeactivated: typeof import('vue')['onDeactivated']
+  const onErrorCaptured: typeof import('vue')['onErrorCaptured']
+  const onMounted: typeof import('vue')['onMounted']
+  const onRenderTracked: typeof import('vue')['onRenderTracked']
+  const onRenderTriggered: typeof import('vue')['onRenderTriggered']
+  const onScopeDispose: typeof import('vue')['onScopeDispose']
+  const onServerPrefetch: typeof import('vue')['onServerPrefetch']
+  const onUnmounted: typeof import('vue')['onUnmounted']
+  const onUpdated: typeof import('vue')['onUpdated']
+  const provide: typeof import('vue')['provide']
+  const reactive: typeof import('vue')['reactive']
+  const readonly: typeof import('vue')['readonly']
+  const ref: typeof import('vue')['ref']
+  const resolveComponent: typeof import('vue')['resolveComponent']
+  const shallowReactive: typeof import('vue')['shallowReactive']
+  const shallowReadonly: typeof import('vue')['shallowReadonly']
+  const shallowRef: typeof import('vue')['shallowRef']
+  const toRaw: typeof import('vue')['toRaw']
+  const toRef: typeof import('vue')['toRef']
+  const toRefs: typeof import('vue')['toRefs']
+  const triggerRef: typeof import('vue')['triggerRef']
+  const unref: typeof import('vue')['unref']
+  const useAttrs: typeof import('vue')['useAttrs']
+  const useCssModule: typeof import('vue')['useCssModule']
+  const useCssVars: typeof import('vue')['useCssVars']
+  const useSlots: typeof import('vue')['useSlots']
+  const watch: typeof import('vue')['watch']
+  const watchEffect: typeof import('vue')['watchEffect']
+  const watchPostEffect: typeof import('vue')['watchPostEffect']
+  const watchSyncEffect: typeof import('vue')['watchSyncEffect']
+}
+// for type re-export
+declare global {
+  // @ts-ignore
+  export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode } from 'vue'
 }

+ 7 - 0
src/components/Table/table-partials/table-content/table-body/TableBodyRow.vue

@@ -2,6 +2,7 @@
 import { ref, withDefaults, watch, onMounted } from "vue"
 import type { Header } from "@/components/Table/table-partials/models"
 import TableTreeRow from "./TableTreeRow.vue"
+import configs from "@/core/config/Index"
 
 const props = withDefaults(
   defineProps<{
@@ -171,6 +172,9 @@ onMounted(init)
                 {{ row }}
               </slot>
             </template>
+            <template v-else-if="column.field == configs.TABLE_INDEX_FIELD">
+              {{ i + 1 }}
+            </template>
             <template v-else>
               {{ row[column.field] }}
             </template>
@@ -185,6 +189,9 @@ onMounted(init)
                 {{ row }}
               </slot>
             </template>
+            <template v-else-if="column.field == configs.TABLE_INDEX_FIELD">
+              {{ i + 1 }}
+            </template>
             <template v-else>
               {{ row[column.field] }}
             </template>

+ 8 - 0
src/components/Table/table-partials/table-content/table-body/TableTreeRow.vue

@@ -2,6 +2,8 @@
 import { ref, withDefaults, onMounted, computed } from "vue"
 import type { Header } from "@/components/Table/table-partials/models"
 import TableTreeRowChild from "./TableTreeRowChild.vue"
+import configs from "@/core/config/Index"
+
 const props = withDefaults(
   defineProps<{
     header: Array<Header>
@@ -118,6 +120,9 @@ onMounted(() => {
             {{ row }}
           </slot>
         </template>
+        <template v-else-if="column.field == configs.TABLE_INDEX_FIELD">
+          {{ i + 1 }}
+        </template>
         <template v-else>
           {{ row[column.field] }}
         </template>
@@ -133,6 +138,9 @@ onMounted(() => {
             {{ row }}
           </slot>
         </template>
+        <template v-else-if="column.field == configs.TABLE_INDEX_FIELD">
+          {{ i + 1 }}
+        </template>
         <template v-else>
           {{ row[column.field] }}
         </template>

+ 7 - 0
src/components/Table/table-partials/table-content/table-body/TableTreeRowChild.vue

@@ -2,6 +2,7 @@
 import { ref, withDefaults, onMounted, computed } from "vue"
 import type { Header } from "@/components/Table/table-partials/models"
 import TableTreeRow from "./TableTreeRow.vue"
+import configs from "@/core/config/Index"
 
 const props = withDefaults(
   defineProps<{
@@ -122,6 +123,9 @@ onMounted(() => {
             {{ row }}
           </slot>
         </template>
+        <template v-else-if="column.field == configs.TABLE_INDEX_FIELD">
+          {{ i + 1 }}
+        </template>
         <template v-else>
           {{ row[column.field] }}
         </template>
@@ -137,6 +141,9 @@ onMounted(() => {
             {{ row }}
           </slot>
         </template>
+        <template v-else-if="column.field == configs.TABLE_INDEX_FIELD">
+          {{ i + 1 }}
+        </template>
         <template v-else>
           {{ row[column.field] }}
         </template>

+ 1 - 0
src/core/config/Index.ts

@@ -4,6 +4,7 @@ const configs = {
   AUTH_EXPIRE_MINUTES: 60, //登录时效
   MAIN_ROUTER_NAME: "dashboard",
   SIGN_ROUTE_NAME: "sign-in",
+  TABLE_INDEX_FIELD: "$index$",
 }
 
 export default configs

+ 62 - 59
src/layouts/main-layout/header/PageTitle.vue

@@ -1,76 +1,79 @@
 <template>
   <!--begin::Page title-->
-  <div
-    v-if="pageTitleDisplay"
-    :class="`page-title d-flex flex-${pageTitleDirection} justify-content-center flex-wrap me-3`"
-  >
-    <template v-if="pageTitle">
-      <!--begin::Title-->
-      <h1 class="page-heading d-flex text-dark fw-bold fs-3 flex-column justify-content-center my-0">
-        {{ pageTitle }}
-      </h1>
-      <!--end::Title-->
+  <div class="d-flex">
+    <div
+      v-if="showBackBtn"
+      class="d-flex h-100 justify-content-center align-items-center pe-4"
+      style="cursor: pointer"
+      @click="router.go(-1)"
+    >
+      <span class="svg-icon svg-icon-2tx" v-tooltip title="返回" data-bs-trigger="hover" data-bs-placement="bottom">
+        <inline-svg :src="getAssetPath('media/icons/duotune/general/gen058.svg')" />
+      </span>
+    </div>
+    <div
+      v-if="pageTitleDisplay"
+      :class="`page-title d-flex flex-${pageTitleDirection} justify-content-center flex-wrap me-3`"
+    >
+      <template v-if="pageTitle">
+        <!--begin::Title-->
+        <h1 class="page-heading d-flex text-dark fw-bold fs-3 flex-column justify-content-center my-0">
+          {{ pageTitle }}
+        </h1>
+        <!--end::Title-->
 
-      <span
-        v-if="pageTitleDirection === 'row' && pageTitleBreadcrumbDisplay"
-        class="h-20px border-gray-200 border-start mx-3"
-      ></span>
+        <span
+          v-if="pageTitleDirection === 'row' && pageTitleBreadcrumbDisplay"
+          class="h-20px border-gray-200 border-start mx-3"
+        ></span>
 
-      <!--begin::Breadcrumb-->
-      <ul
-        v-if="breadcrumbs && pageTitleBreadcrumbDisplay"
-        class="breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0 pt-1"
-      >
-        <!--begin::Item-->
-        <!-- <li class="breadcrumb-item text-muted">
+        <!--begin::Breadcrumb-->
+        <ul
+          v-if="breadcrumbs && pageTitleBreadcrumbDisplay"
+          class="breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0 pt-1"
+        >
+          <!--begin::Item-->
+          <!-- <li class="breadcrumb-item text-muted">
           <router-link to="/" class="text-muted text-hover-primary">Home</router-link>
         </li> -->
-        <!--end::Item-->
-        <template v-for="(item, i) in breadcrumbs" :key="i">
-          <!--begin::Item-->
-
-          <li v-if="i != 0" class="breadcrumb-item">
-            <span class="bullet bg-gray-400 w-5px h-2px"></span>
-          </li>
-          <!--end::Item-->
-          <!--begin::Item-->
-          <li class="breadcrumb-item text-muted">{{ item }}</li>
           <!--end::Item-->
-        </template>
-      </ul>
-      <!--end::Breadcrumb-->
-    </template>
+          <template v-for="(item, i) in breadcrumbs" :key="i">
+            <!--begin::Item-->
+
+            <li v-if="i != 0" class="breadcrumb-item">
+              <span class="bullet bg-gray-400 w-5px h-2px"></span>
+            </li>
+            <!--end::Item-->
+            <!--begin::Item-->
+            <li class="breadcrumb-item text-muted">{{ item }}</li>
+            <!--end::Item-->
+          </template>
+        </ul>
+        <!--end::Breadcrumb-->
+      </template>
+    </div>
+    <div v-else class="align-items-stretch"></div>
   </div>
-  <div v-else class="align-items-stretch"></div>
   <!--end::Page title-->
 </template>
 
-<script lang="ts">
-import { defineComponent, computed } from "vue"
+<script lang="ts" setup>
+import { computed } from "vue"
+import { getAssetPath } from "@/core/helpers/assets"
 import { pageTitleDisplay, pageTitleBreadcrumbDisplay, pageTitleDirection } from "@/core/helpers/config"
-import { useRoute } from "vue-router"
-
-export default defineComponent({
-  name: "layout-page-title",
-  components: {},
-  setup() {
-    const route = useRoute()
+import { useRoute, useRouter } from "vue-router"
+const route = useRoute()
+const router = useRouter()
 
-    const pageTitle = computed(() => {
-      return route.meta.pageTitle
-    })
+const showBackBtn = computed(() => {
+  return route.query.back && Number(route.query.back) != 0
+})
 
-    const breadcrumbs = computed(() => {
-      return route.meta.breadcrumbs
-    })
+const pageTitle = computed(() => {
+  return route.meta.pageTitle
+})
 
-    return {
-      pageTitle,
-      breadcrumbs,
-      pageTitleDisplay,
-      pageTitleBreadcrumbDisplay,
-      pageTitleDirection,
-    }
-  },
+const breadcrumbs = computed(() => {
+  return route.meta.breadcrumbs
 })
 </script>

+ 4 - 1
src/router/Index.ts

@@ -105,7 +105,10 @@ const hasNecessaryRoute = (to: RouteLocationNormalized) => {
 let isReload = true
 router.beforeEach((to, from, next) => {
   const configStore = appStore.bodyConfigStore
-
+  //解决切换路由tooltip不消失
+  document.querySelectorAll(".tooltip").forEach((v) => {
+    v.remove()
+  })
   // current page view title
   document.title = `${to.meta.pageTitle ?? ""} - ${import.meta.env.VITE_APP_NAME}`
 

+ 14 - 0
src/router/statictRouter.ts

@@ -54,4 +54,18 @@ export const staticRotuer: Array<RouteRecordRaw> = [
       },
     ],
   },
+  {
+    path: "/",
+    component: () => import("@/layouts/main-layout/MainLayout.vue"),
+    children: [
+      {
+        path: "/analysisInfo/overdue/company",
+        component: () => import("@/views/analysisInfo/overdueCompany.vue"),
+        meta: {
+          pageTitle: "逾期报警情况",
+          breadcrumbs: ["综合分析", "清洗分析", "逾期报警"],
+        },
+      },
+    ],
+  },
 ]

+ 15 - 4
src/views/analysisInfo/_OverDate.vue → src/views/analysisInfo/_Overdue.vue

@@ -3,6 +3,7 @@ import { ref, onMounted } from "vue"
 import moment from "moment"
 import Rs from "@/core/services/RequestService"
 import { useRouter } from "vue-router"
+import configs from "@/core/config/Index"
 const router = useRouter()
 const ringOptions = {
   legend: { top: "center", bottom: "auto", right: "20%", orient: "vertical" },
@@ -55,7 +56,8 @@ const queryParams = ref<any>({
 const cols = ref([
   {
     name: "序号",
-    field: "index",
+    width: 60,
+    field: configs.TABLE_INDEX_FIELD,
   },
   {
     name: "区域",
@@ -90,7 +92,7 @@ const jump = function (v: any) {
     query: {
       comName: v.company_name,
       company_id: v.company_id,
-      backNeed: 1,
+      back: 1,
     },
   })
 }
@@ -148,8 +150,17 @@ function exported() {
 }
 const detail = function (row: any) {
   router.push({
-    path: "/purify/washInfo/details",
-    query: { company_id: row.company_id },
+    path: "/analysisInfo/overdue/company",
+    query: {
+      back: 1,
+      company_id: row.company_id,
+      name: row.name,
+      type: "0",
+      time_type: timeType.value,
+      warn_type: "000100004",
+      query_start_time: moment(date.value[0]).format("YYYYMMDD"),
+      query_end_time: moment(date.value[1]).format("YYYYMMDD"),
+    },
   })
 }
 function init() {

+ 2 - 1
src/views/analysisInfo/_WeekClean.vue

@@ -82,7 +82,7 @@ const jump = function (v: any) {
     query: {
       comName: v.company_name,
       company_id: v.company_id,
-      backNeed: 1,
+      back: 1,
     },
   })
 }
@@ -136,6 +136,7 @@ const detail = function (row: any) {
   router.push({
     path: "/DataBoard/index/cleanList",
     query: {
+      back: 1,
       company_id: row.company_id,
       type: "1",
     },

+ 2 - 2
src/views/analysisInfo/clean.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { ref } from "vue"
-import OverDate from "./_OverDate.vue"
+import Overdue from "./_Overdue.vue"
 import WeekClean from "./_WeekClean.vue"
 const queryType = ref(0)
 </script>
@@ -12,6 +12,6 @@ const queryType = ref(0)
       <el-radio-button label="1">一周待清洗</el-radio-button>
     </el-radio-group>
   </div>
-  <OverDate v-if="queryType == 0"></OverDate>
+  <Overdue v-if="queryType == 0"></Overdue>
   <WeekClean v-if="queryType == 1"></WeekClean>
 </template>

+ 62 - 0
src/views/analysisInfo/overdueCompany.vue

@@ -0,0 +1,62 @@
+<script setup lang="ts">
+import configs from "@/core/config/Index"
+import { ref, computed, onMounted } from "vue"
+import { useRoute } from "vue-router"
+const route = useRoute()
+const companyName = ref(route.query.name)
+const queryParams = ref({
+  company_id: route.query.company_id,
+  time_type: route.query.time_type,
+  warn_type: route.query.warn_type,
+  query_start_time: route.query.query_start_time,
+  query_end_time: route.query.query_end_time,
+})
+const cols = ref([
+  {
+    name: "序号",
+    width: 60,
+    field: configs.TABLE_INDEX_FIELD,
+  },
+  {
+    name: "净化设施",
+    field: "device_name",
+  },
+  {
+    name: "告警类型",
+    field: "warn_type_name",
+  },
+  {
+    name: "报警时间",
+    field: "warn_starttime",
+  },
+  {
+    name: "操作",
+    width: 120,
+    field: "action",
+  },
+])
+
+function detail(row: any) {
+  //
+}
+</script>
+
+<template>
+  <VbDataTable
+    ref="table"
+    :header="cols"
+    url="sys/overdueCompany/getWarnForPage"
+    method="post"
+    :query-params="queryParams"
+    :has-checkbox="false"
+    :pagination="false"
+  >
+    <template v-slot:table-tool="">
+      <h2>{{ companyName }}</h2>
+    </template>
+
+    <template #action="{ row }">
+      <span class="table-action" @click="detail(row)">查看详情</span>
+    </template>
+  </VbDataTable>
+</template>

+ 1 - 1
src/views/dashboard/Screen/ChartOver.vue

@@ -82,7 +82,7 @@ const jump = (it: any) => {
   router.push({
     path: "/overAnalysis/overTime/detail",
     query: {
-      needPase: 1,
+      back: 1,
       name_code: it.name,
       time_type: 0,
       query_type: 4, //首页跳转

+ 1 - 1
src/views/dashboard/Screen/Map.vue

@@ -327,7 +327,7 @@ const jumpCompanyDetail = (item: any) => {
     query: {
       comName: item.name,
       company_id: item.company_id,
-      //backNeed: 1,
+      back: 1,
     },
   })
 }

+ 1 - 1
src/views/goLineData/timeData.vue

@@ -176,7 +176,7 @@ const jump = function (v: any) {
     query: {
       comName: v.company_name,
       company_id: v.company_id,
-      backNeed: 1,
+      back: 1,
     },
   })
 }

+ 1 - 1
src/views/overAnalysis/oveParamDetail.vue

@@ -58,9 +58,9 @@ const jump = function (v: any) {
   router.push({
     path: "/goLineData/oilFumeConcentration",
     query: {
+      back: 1,
       comName: v.company_name,
       company_id: v.company_id,
-      backNeed: 1,
     },
   })
 }

+ 2 - 1
src/views/overAnalysis/overMerchants.vue

@@ -75,7 +75,7 @@ const jump = function (v: any) {
     query: {
       comName: v.company_name,
       company_id: v.company_id,
-      backNeed: 1,
+      back: 1,
     },
   })
 }
@@ -131,6 +131,7 @@ const detail = function (row: any) {
   router.push({
     path: "/overAnalysis/overTime/over_company",
     query: {
+      back: 1,
       type: 0,
       time_type: timeType.value,
       company_id: row.company_id || "",

+ 1 - 1
src/views/overAnalysis/overTime.vue

@@ -102,7 +102,7 @@ const detail = function (v: any) {
   router.push({
     path: "/overAnalysis/overTime/detail",
     query: {
-      needPase: 1,
+      back: 1,
       query_type: queryType.value,
       name_code: v.name_code,
       time_type: timeType.value,

+ 2 - 1
src/views/overAnalysis/overTimeDetail.vue

@@ -92,7 +92,7 @@ const jump = function (v: any) {
     query: {
       comName: v.company_name,
       company_id: v.company_id,
-      backNeed: 1,
+      back: 1,
     },
   })
 }
@@ -187,6 +187,7 @@ function detail(row: any) {
   router.push({
     path: "/overAnalysis/overTime/detail_company",
     query: {
+      back: 1,
       company_id: row.company_id,
       name: row.name,
       type: "0",

+ 2 - 1
src/views/overAnalysis/overTimeDetail_Company.vue

@@ -70,7 +70,7 @@ const jump = function (v: any) {
     query: {
       comName: v.company_name,
       company_id: v.company_id,
-      backNeed: 1,
+      back: 1,
     },
   })
 }
@@ -156,6 +156,7 @@ function detail(row: any) {
   router.push({
     path: path,
     query: {
+      back: 1,
       id: row.id,
       type: row.warn_type,
       needback: 1,