فهرست منبع

feat:页面调整 配置预警配置模块和页面优化 油机详细UI下版

huang, kai (Contractor) 3 ماه پیش
والد
کامیت
af6c92e7c9
31فایلهای تغییر یافته به همراه601 افزوده شده و 118 حذف شده
  1. 1 1
      admin.ui.plus-master/.env.development
  2. 1 1
      admin.ui.plus-master/index.html
  3. 12 2
      admin.ui.plus-master/src/api/admin/AlarmService/pushTemplateDto.ts
  4. 23 0
      admin.ui.plus-master/src/api/admin/deviceAuthorization/oilUpApi.ts
  5. 50 0
      admin.ui.plus-master/src/api/admin/deviceAuthorization/oilUpDto.ts
  6. BIN
      admin.ui.plus-master/src/assets/anquanzhaungzhi.png
  7. BIN
      admin.ui.plus-master/src/assets/bianmaqi.png
  8. BIN
      admin.ui.plus-master/src/assets/jiamixianshiqi.png
  9. BIN
      admin.ui.plus-master/src/assets/jiankongweichuliqi.png
  10. BIN
      admin.ui.plus-master/src/assets/jiayouzhan.png
  11. BIN
      admin.ui.plus-master/src/assets/jiliangqi.png
  12. BIN
      admin.ui.plus-master/src/assets/map/IconParkSolidCheckOne.png
  13. BIN
      admin.ui.plus-master/src/assets/map/IconParkSolidCloseOne.png
  14. BIN
      admin.ui.plus-master/src/assets/youqiang.png
  15. BIN
      admin.ui.plus-master/src/assets/youzhan.png
  16. 19 39
      admin.ui.plus-master/src/components/StatusBox.vue
  17. 10 0
      admin.ui.plus-master/src/router/route.ts
  18. 127 0
      admin.ui.plus-master/src/views/NewPage.vue
  19. 233 0
      admin.ui.plus-master/src/views/admin/authorize/oilUp/index.vue
  20. 0 1
      admin.ui.plus-master/src/views/admin/product/qrBook/index.vue
  21. 1 5
      admin.ui.plus-master/src/views/admin/product/record/index.vue
  22. 2 1
      admin.ui.plus-master/src/views/admin/product/type/index.vue
  23. 32 14
      admin.ui.plus-master/src/views/admin/statement/listOfOilEngines/index.vue
  24. 11 13
      admin.ui.plus-master/src/views/admin/statement/moreOilEngineDetails/component/main.vue
  25. 25 5
      admin.ui.plus-master/src/views/admin/statement/partInformation/index.vue
  26. 7 7
      admin.ui.plus-master/src/views/admin/workbench/index.vue
  27. 0 0
      admin.ui.plus-master/src/views/admin/yujing/alarmRules/components/add-alarmRules.vue
  28. 0 0
      admin.ui.plus-master/src/views/admin/yujing/alarmRules/components/pushTemplate.vue
  29. 8 2
      admin.ui.plus-master/src/views/admin/yujing/alarmRules/index.vue
  30. 36 24
      admin.ui.plus-master/src/views/admin/yujing/alarmRules/template.vue
  31. 3 3
      admin.ui.plus-master/src/views/example/codeGeneration/index.vue

+ 1 - 1
admin.ui.plus-master/.env.development

@@ -3,7 +3,7 @@ ENV = 'development'
 
 # 本地环境接口地址
 # VITE_API_URL = 'http://ipos.biz:8070'
-#  VITE_API_URL = 'http://localhost:8003'
+#  VITE_API_URL = 'http://192.168.0.202:8003'
 VITE_API_URL = 'http://dev.hsfuel.com:8070'
 # VITE_API_URL = 'http://47.101.220.106:8070'
 # VITE_API_URL = 'http://ipos.biz:8070'

+ 1 - 1
admin.ui.plus-master/index.html

@@ -21,6 +21,6 @@
       })()
     </script> -->
     <script type="module" src="/src/main.ts"></script>
-    <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=wsijQt8sLXrCW71YesmispvYHitfG9gv&s=1"></script>
+    <!-- <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=wsijQt8sLXrCW71YesmispvYHitfG9gv&s=1"></script> -->
   </body>
 </html>

+ 12 - 2
admin.ui.plus-master/src/api/admin/AlarmService/pushTemplateDto.ts

@@ -15,14 +15,24 @@ export  interface pushTemplateModel{
     templateType?: string,
     /**模板内容 */
     templateContent?:string,
+    // 模板状态
+    isActive?:string
   }
 
 /**
  * 列表查询信息
  */
 export interface pushTemplateModel_SearchFilter {
-  /**规则名称*/
-  templateName?: string,
+    /**模板ID */
+    id?:number,
+    /**模板名称*/
+    templateName?: string,
+    /**模板类型*/
+    templateType?: string,
+    /**模板内容 */
+    templateContent?:string,
+    // 模板状态
+    isActive?:string
 }
 
 /** 查询信息输入 */

+ 23 - 0
admin.ui.plus-master/src/api/admin/deviceAuthorization/oilUpApi.ts

@@ -0,0 +1,23 @@
+import { AxiosResponse } from 'axios'
+  import { ContentType, HttpClient, RequestParams } from '/@/api/admin/http-client'
+  export class Api<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
+    /**
+   * No description
+   *
+   * @tags
+   * @name GetList
+   * @summary 查询列表
+   * @request POST:'/api/app/fuel-dispenser/upgrade-management'
+   * @secure
+   */
+getList = (data:any ,params: RequestParams = {}) : any  =>
+      this.request<AxiosResponse,any>({
+        path:'/api/app/fuel-dispenser/upgrade-management',
+        method: 'POST',
+        body:data,
+        type: ContentType.Json,
+        secure: true,
+        format: 'json',
+        ...params
+      })
+    }

+ 50 - 0
admin.ui.plus-master/src/api/admin/deviceAuthorization/oilUpDto.ts

@@ -0,0 +1,50 @@
+/** 查询信息输出 */
+  export interface ResultOutputPageOutputUpgradeManagementDto{
+  /** 是否成功标记 */
+  success?: boolean
+  /** 编码 */
+  code?: string | null
+  /** 消息 */
+  msg?: string | null
+  /** 数据 */
+ data?:PageOutputUpgradeManagementDto[] | null
+}
+    export interface PageOutputUpgradeManagementDto{
+      /**
+      * 数据总数
+      * @format int64
+      */
+      total?: number
+      /** 数据 */
+      list?: UpgradeManagementDto[] | null
+    }
+    export interface UpgradeManagementDto{
+   /** 加油站 */
+      stationName?: string
+   /** 加油机机型 */
+      model?: string
+   /** 油机号 */
+      name?: string
+   /** 软件版本 */
+      softV?: string
+   /** 升级状态 */
+      upgradeStatus?: string
+   /** 地址信息 */
+      address?: string
+   /** 操作账户 */
+      account?: string
+   /** 升级时间 */
+      upgradeTime?: string
+   /** 备注 */
+      remarks?: string
+   /** 序列号 */
+      serialNumber?: string
+   // /** stationID */
+   //    stationID?: integer
+}
+export interface pageInput {
+      /**当前页数 */
+      CurrentPage: number | any
+      /**展示页数 */
+      PageSize: number | any
+    }

BIN
admin.ui.plus-master/src/assets/anquanzhaungzhi.png


BIN
admin.ui.plus-master/src/assets/bianmaqi.png


BIN
admin.ui.plus-master/src/assets/jiamixianshiqi.png


BIN
admin.ui.plus-master/src/assets/jiankongweichuliqi.png


BIN
admin.ui.plus-master/src/assets/jiayouzhan.png


BIN
admin.ui.plus-master/src/assets/jiliangqi.png


BIN
admin.ui.plus-master/src/assets/map/IconParkSolidCheckOne.png


BIN
admin.ui.plus-master/src/assets/map/IconParkSolidCloseOne.png


BIN
admin.ui.plus-master/src/assets/youqiang.png


BIN
admin.ui.plus-master/src/assets/youzhan.png


+ 19 - 39
admin.ui.plus-master/src/components/StatusBox.vue

@@ -62,6 +62,7 @@
           case "已出厂注册": return 'blue'
 
 
+          case "禁用": return 'red'
           default: return 'red'
         }
       },
@@ -112,7 +113,6 @@
           // 电子档案-安全装置
           case "已出厂注册": return 'blue'
 
-
           default: return 'red'
         }
       }
@@ -133,12 +133,22 @@
     align-items: center;
     font-weight: 400;
   }
-  
 
+/* 盒子样式 */
   .status-box.blueGreen {
     background-color: #76C7C0;
     border-color: #286a88;
   }
+ 
+  .status-box.yellow {
+    border-color:rgb(165, 165, 32);
+    background-color:#FBBD08;
+  }
+
+  .status-box.blue {
+    border-color: #4d3beb;
+    background-color: #4A90E2;
+  }
 
   .status-box.littleGreen {
     background-color: #A5D6A7;
@@ -158,44 +168,30 @@
     border-color: #9dbbd8;
     background-color: #B3C6D8;
   }
-  .status-box.blue {
-    border-color: #4d3beb;
-    background-color: #4A90E2;
-  }
   
   .status-box.gray {
     border-color:grey;
     background-color:#8a8b94;
   }
 
-  .status-box.yellow {
-    border-color:rgb(165, 165, 32);
-    background-color:#FBBD08;
-  }
-
-  .status-box.yelbluevioletlow {
-    border-color:blueviolet;
-    background-color:rgb(222, 195, 248);
-  }
-
-  .status-box.hotpink {
-    border-color:hotpink;
-    background-color:rgb(248, 196, 222);
+/* 文本样式 */
+  span.yellow {
+    color: white;
   }
 
   span.blueGreen {
     color: white;
   }
   
-  span.green {
+  span.blue {
     color: white;
   }
-  
-  span.red {
+
+  span.green {
     color: white;
   }
   
-  span.blue {
+  span.red {
     color: white;
   }
 
@@ -210,20 +206,4 @@
   span.littleGreen {
     color: white;
   }
-
-  .status-box.yellow {
-    color: white;
-  }
-
-  .status-box.yelbluevioletlow{
-    color: white;
-  }
-
-  .status-box.status-box.hotpink{
-  color: white;
-}
-
-
-
-
   </style>

+ 10 - 0
admin.ui.plus-master/src/router/route.ts

@@ -1304,4 +1304,14 @@ export const staticRoutes: Array<RouteRecordRaw> = [
       title: '设备可视化',
     },
   },
+
+
+  {
+    path: '/new-page',  // 访问路径
+    name: 'NewPage',    // 路由名称
+    component: () => import('/@/views/NewPage.vue'),
+    meta: {
+      title: '新页面',  // 页面标题
+    }
+  }
 ]

+ 127 - 0
admin.ui.plus-master/src/views/NewPage.vue

@@ -0,0 +1,127 @@
+
+<template>
+  <div class="layout-pd">
+    <el-row>
+<!--操作-->
+      <el-col :xs="24" >
+        <el-card class="mt8"  shadow="hover" >
+<el-form :model="state.filter" :inline="true" @submit.stop.prevent>
+            <el-form-item prop="name" style="width: 100%">
+<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                <el-form-item label="id">
+                  <el-input v-model="state.filter.id" placeholder="单行输入" clearable></el-input>
+                </el-form-item>
+              </el-col>
+</el-form-item>
+          </el-form>
+<div class="my-flex my-flex-start" >
+<el-button  type="primary" icon="ele-CirclePlus" @click="onQuery"> 查询 </el-button>
+<el-button  type="primary" icon="ele-CirclePlus" @click="onAdd"> 添加 </el-button>
+<el-button  type="primary" icon="ele-CirclePlus" @click="ondelete"> 批量删除 </el-button>
+<el-button  type="primary" icon="ele-CirclePlus" @click="onReset"> 重置 </el-button>
+</div>
+</el-card>
+      </el-col>
+<!--表格-->
+      <el-col  :xs="24" >
+        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+<el-table-column type="selection" width="50"></el-table-column>
+<el-table v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
+        <el-table-column v-for="column in state.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"  >
+        </el-table-column> 
+<el-table-column label="操作"  fixed="right" header-align="center" align="center" class="right-operation" width="140">
+        <template #default="{ row }" >
+<el-link
+                  class="my-el-link mr12 ml12"
+                  type="primary"
+                  icon="ele-Upload"
+                  @click="onDateUpdate(row)"
+                  :underline="false"
+                  target="_blank"
+                >编辑</el-link>
+<el-link
+                  class="my-el-link mr12 ml12"
+                  type="primary"
+                  icon="ele-Upload"
+                  @click="onDataDetail(row)"
+                  :underline="false"
+                  target="_blank"
+                >详情</el-link>
+<el-link
+                  class="my-el-link mr12 ml12"
+                  type="primary"
+                  icon="ele-Upload"
+                  @click="onDataDelete(row)"
+                  :underline="false"
+                  target="_blank"
+                >删除</el-link>
+</template>
+            </el-table-column>
+</el-table>
+</el-card>
+      </el-col>
+</el-row>
+    </div>
+  </template>
+  <script setup lang="ts">
+  import {onBeforeMount, onMounted, reactive, ref, watch} from "vue";
+  import eventBus from "/@/utils/mitt";
+  import {Api} from "/@/api/code/api";
+import { ModuleGetOutput } from "/@/api/code/dto";
+/**数据对象*/
+  const state = reactive({
+    /**加载显示 */
+    loading: false,
+    /**条件查询模块 */
+      filter: {
+/**id */
+        id: "",},
+  /**表格信息 */
+tableModel: [] as ModuleGetOutput,
+    /**动态表头 */
+    dynamicColumns: [
+{ prop: 'name', label: '名称' },
+{ prop: 'id', label: '编号' },
+{ prop: 'version', label: '版本' }]
+})
+  onMounted(() => {
+    init()
+    eventBus.off('refreshView')
+    eventBus.on('refreshView', async () => {
+      await init()
+    })
+    console.log()
+  })
+  onBeforeMount(() => {
+    eventBus.off('refreshView')
+  })
+  /**
+  * 监听变换
+  */
+  watch(() => {})
+/**条件查询 */
+          const onQuery = () => {
+          init()
+        }
+        /**初始化 */
+        const init = async () => {
+          state.loading = true
+const res:any = await new Api().getList({...state.filter})
+state.tableModel = res?.data?.list ?? []
+          state.loading = false
+        }
+/**添加 */
+        const onAdd=()=>{}
+/**批量删除 */
+        const ondelete=()=>{}
+/**重置 */
+        const onReset=()=>{}
+/**编辑 */
+      const onDateUpdate=(row)=>{}
+/**详情 */
+      const onDataDetail=(row)=>{}
+/**删除 */
+      const onDataDelete=(row)=>{}
+</script>
+<style scoped lang="scss">
+  </style>

+ 233 - 0
admin.ui.plus-master/src/views/admin/authorize/oilUp/index.vue

@@ -0,0 +1,233 @@
+
+<template>
+  <div class="layout-pd">
+
+    <el-row>
+<!--操作-->
+      <el-col :xs="24" >
+        <el-card class="mt8"  shadow="hover" >
+<el-form :model="state.filter" :inline="true" @submit.stop.prevent>
+            <el-form-item prop="name" style="width: 100%">
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                <el-form-item label="省、市、区">
+                  <el-input v-model="state.filter.stationName" placeholder="请输入地区" clearable></el-input>
+                </el-form-item>
+              </el-col>
+
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                <el-form-item label="加油站名称">
+                  <el-input v-model="state.filter.stationName" placeholder="请输入加油站" clearable></el-input>
+                </el-form-item>
+              </el-col>
+
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                <el-form-item label="软件版本">
+                  <el-select  placeholder="请选择">
+                     <el-option label="所有" :value="''"></el-option>
+                     <el-option label="开启" :value="''"></el-option>
+                     <el-option label="关闭" :value="''"></el-option>
+                   </el-select>                
+                  </el-form-item>        
+              </el-col>
+
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                <el-form-item label="升级状态">
+                  <el-select  placeholder="请选择">
+                     <el-option label="所有" :value="''"></el-option>
+                     <el-option label="开启" :value="''"></el-option>
+                     <el-option label="关闭" :value="''"></el-option>
+                   </el-select>                
+                  </el-form-item>
+              </el-col>
+
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                <el-form-item label="石油公司">
+                  <el-input v-model="state.filter.remarks" placeholder="请输入石油公司" clearable></el-input>
+                </el-form-item>
+              </el-col>
+
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                <el-form-item label="序列号">
+                  <el-input v-model="state.filter.serialNumber" placeholder="请输入序列号" clearable></el-input>
+                </el-form-item>
+              </el-col>
+</el-form-item>
+          </el-form>
+
+          <hr class="fengexian">
+
+  <!-- 按钮 -->
+  <el-row justify="space-between" class="submit-button">
+      <el-row>
+        <el-button type="primary" icon="ele-CirclePlus" @click="''">升级软件</el-button>
+      </el-row>
+      <el-row>
+          <el-button type="primary" icon="ele-Search" @click="onQuery">查询</el-button>
+          <el-button type="primary" icon="ele-CirclePlus" @click="onReset">重置</el-button>
+      </el-row>
+  </el-row>
+</el-card>
+      </el-col>
+<!--表格-->
+      <el-col  :xs="24" >
+        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+<el-table v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
+    <!-- 多选框 -->
+    <el-table-column type="selection" width="55" fixed="left"></el-table-column>
+  <el-table-column label="操作"  fixed="left" header-align="center" align="center" class="left-operation" width="140">
+        <template #default="{ row }" >
+                <el-link
+                  class="my-el-link mr12 ml12"
+                  type="primary"
+                  @click="onDateUpdate(row)"
+                  :underline="false"
+                  target="_blank"
+                >软件升级</el-link>
+                <el-link
+                  class="my-el-link mr12 ml12"
+                  type="primary"
+                  @click="onDateUpdate(row)"
+                  :underline="false"
+                  target="_blank"
+                >升级日志</el-link>
+                <el-link
+                  class="my-el-link mr12 ml12"
+                  type="primary"
+                  @click="onDateUpdate(row)"
+                  :underline="false"
+                  target="_blank"
+                >软件版本记录</el-link>
+</template>
+            </el-table-column>
+        <el-table-column v-for="column in state.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"  >
+        </el-table-column> 
+</el-table>
+<!-- <div class="my-flex my-flex-end" style="margin-top: 20px">
+            <el-pagination
+              v-model:currentPage="state.pageInput.CurrentPage"
+              v-model:page-size="state.pageInput.PageSize"
+              :total="state.total"
+              :page-sizes="[10, 15, 20, 50, 100]"
+              small
+              background
+              @size-change="onSizeChange"
+              @current-change="onCurrentChange"
+              layout="total, sizes, prev, pager, next, jumper"
+            />
+          </div> -->  
+</el-card>
+      </el-col>
+</el-row>
+    </div>
+  </template>
+  <script setup lang="ts">
+  import {onBeforeMount, onMounted, reactive, ref, watch} from "vue";
+  import eventBus from "/@/utils/mitt";
+  import {Api} from "/@/api/admin/deviceAuthorization/oilUpApi";
+import { pageInput,UpgradeManagementDto } from "/@/api/admin/deviceAuthorization/oilUpDto";
+
+
+/**数据对象*/
+  const state = reactive({
+    /**加载显示 */
+    loading: false,
+    /**条件查询模块 */
+      filter: {
+/**加油站 */
+        stationName: "",
+/**软件版本 */
+        softV: "",
+/**升级状态 */
+        upgradeStatus: "",
+/**升级时间 */
+        upgradeTime: "",
+/**备注 */
+        remarks: "",
+/**序列号 */
+        serialNumber: "",},
+  /**表格信息 */
+tableModel: [] as UpgradeManagementDto,
+    /**动态表头 */
+    dynamicColumns: [
+    { prop: 'serialNumber', label: '序列号' },
+    { prop: 'stationName', label: '加油站' },
+    { prop: 'model', label: '加油机机型' },
+    { prop: 'name', label: '油机号' },
+    { prop: 'softV', label: '软件版本' },
+    { prop: 'upgradeStatus', label: '升级状态' },
+    { prop: 'address', label: '地址信息' },
+    { prop: 'account', label: '操作账户' },
+    { prop: 'upgradeTime', label: '升级时间' },
+    { prop: 'remarks', label: '备注' },
+],
+/**分页标识 */
+    pageInput:{
+      CurrentPage: 1,
+      PageSize: 10,
+    } as pageInput,
+    /**分页总数 */
+    total: 0,
+})
+  onMounted(() => {
+    init()
+    eventBus.off('refreshView')
+    eventBus.on('refreshView', async () => {
+      await init()
+    })
+    console.log()
+  })
+  onBeforeMount(() => {
+    eventBus.off('refreshView')
+  })
+  /**
+  * 监听变换
+  */
+  watch(() => {})
+/**条件查询 */
+          const onQuery = () => {
+          init()
+        }
+        /**初始化 */
+        const init = async () => {
+          state.loading = true
+const res:any = await new Api().getList({...state.pageInput, Filter:state.filter})
+            state.total = res?.data?.total ?? 0
+state.tableModel = res?.data?.list ?? []
+          state.loading = false
+        }
+/**重置 */
+        const onReset=()=>{}
+/**编辑 */
+      const onDateUpdate=(row)=>{}
+      
+//       const onSizeChange = () => {
+//         onQuery()
+// }
+
+// const onCurrentChange = () => {
+//   onQuery()
+// }
+ </script>
+<style scoped lang="scss">
+.el-input,
+.el-select {
+    width: 240px;
+}
+
+/* 输入框标签固定四个字符宽度 */
+::v-deep .el-form-item__label {
+    // 字体大小14,4个字符,12px右间距
+    width: 14*5px+12px;
+    justify-content: start;
+}
+
+/* 数据表头 设置灰色样式 */
+::v-deep .el-table th.el-table__cell {
+    background-color: #F6F6F6;
+}
+
+.fengexian{
+  margin-top: -3.5vh;
+  margin-bottom: 1vh;
+}
+  </style>

+ 0 - 1
admin.ui.plus-master/src/views/admin/product/qrBook/index.vue

@@ -52,7 +52,6 @@
                             <el-button type="primary" icon="ele-CirclePlus" @click="uploadDialog">上传说明书</el-button>
                         </el-row>
                     </el-row>
-
                 </el-card>
             </el-col>
 

+ 1 - 5
admin.ui.plus-master/src/views/admin/product/record/index.vue

@@ -277,7 +277,7 @@ onMounted(async () => {
 
 const onQuery = async () => {
   bomModel.loading = true
-  debugger
+  // debugger
     let filter = {...bomModel.filterModel };
   if (!filter.bomType) {
     // 如果bomType为空,即选择了“所有”,从过滤条件中删除该字段
@@ -352,10 +352,6 @@ const toPage = (row) => {
 </script>
 
 <style scoped lang="scss">
-.bold-font {
-  font-weight: bold;
-}
-
 .el-input,
 .el-select {
   width: 240px;

+ 2 - 1
admin.ui.plus-master/src/views/admin/product/type/index.vue

@@ -245,7 +245,8 @@ const getImg = (url) => {
 /**查询*/
 const onQuery = async () => {
   state.loading = true
-  const { data } = await new ComponentTypeApi().getPage({ ...state.pageInput, filter: state.filterModel }).catch(() => {
+  const { data } = await new ComponentTypeApi().getPage({
+     ...state.pageInput, filter: state.filterModel }).catch(() => {
     state.loading = false
   })
   state.bomListData = data?.list ?? []

+ 32 - 14
admin.ui.plus-master/src/views/admin/statement/listOfOilEngines/index.vue

@@ -116,10 +116,15 @@
             </el-table-column>
           </el-table>
           <div class="my-flex my-flex-end" style="margin-top: 20px">
-            <el-pagination v-model:currentPage="pageState.pageInput.currentPage"
-              v-model:page-size="pageState.pageInput.pageSize" :total="oilEngineData.total" :default-page-size="5"
-              :page-sizes="[5, 10, 15, 20, 50, 100]" small background @size-change="onSizeChange"
-              @current-change="onCurrentChange" layout="total, sizes, prev, pager, next, jumper" />
+             <el-pagination 
+              v-model:currentPage="pageState.pageInput.currentPage"
+              v-model:page-size="pageState.pageInput.pageSize"
+              :total="oilEngineData.total"
+              :page-sizes="[5, 10, 15, 20, 50, 100]"
+              layout="total, sizes, prev, pager, next, jumper"
+              @size-change="onSizeChange"
+              @current-change="onCurrentChange"
+            />
           </div>
         </el-card>
       </el-col>
@@ -232,13 +237,17 @@ const onReset = () => {
 const onQuery = () => {
   init()
 }
-/**页条数变化*/
-const onSizeChange = () => {
+// 修改分页处理方法
+const onSizeChange = (val: number) => {
+  pageState.pageInput.pageSize = val
+  oilEngineData.pageInput.pageSize = val
+  oilEngineData.pageInput.currentPage = 1 // 通常切换size会回到第一页
   init()
 }
 
-/**页数变化*/
-const onCurrentChange = () => {
+const onCurrentChange = (val: number) => {
+  pageState.pageInput.currentPage = val
+  oilEngineData.pageInput.currentPage = val
   init()
 }
 const toPage = (row) => {
@@ -282,12 +291,20 @@ const getOilEngineStatus = (val) => {
 /**初始化 */
 const init = async () => {
   oilEngineData.loading = true
-  const query = flattenObject({ filterModel: oilEngineData.filterModel })
-  const res: any = await new ListOfOilEnginesApi().getPage({ ...oilEngineData.pageInput, filter: oilEngineData.filterModel })
-  oilEngineData.tableModel = res?.data?.list ?? []
-  oilEngineData.total = res?.data?.total ?? 0
-  oilEngineData.loading = false
+  try {
+    const res = await new ListOfOilEnginesApi().getPage({
+      currentPage: oilEngineData.pageInput.currentPage,  // 使用小写
+      pageSize: oilEngineData.pageInput.pageSize,      // 使用小写
+      filter: oilEngineData.filterModel
+    })
+    console.log('API Response:', res)
+    oilEngineData.tableModel = res?.data?.list ?? []
+    oilEngineData.total = res?.data?.total ?? 0
+  } finally {
+    oilEngineData.loading = false
+  }
 }
+
 /**重置查询条件 */
 const resetQuery = () => {
   oilEngineData.filterModel.name = ''
@@ -325,7 +342,8 @@ const getColor = (value: string): string => {
 
 onMounted(() => {
  // 初始化分页大小
- oilEngineData.pageInput.pageSize = pageState.pageInput.pageSize;
+  oilEngineData.pageInput.pageSize = pageState.pageInput.pageSize;
+  oilEngineData.pageInput.currentPage = 1; // 初始化时重置为第一页
   init()
   eventBus.off('refreshView')
   eventBus.on('refreshView', async () => {

+ 11 - 13
admin.ui.plus-master/src/views/admin/statement/moreOilEngineDetails/component/main.vue

@@ -64,7 +64,7 @@
                         <div class="status-point oilInfo-con-first"
                             :style="detailsData.list.onlineStatus == '在线' ? 'background-color:#5b53f9' : 'background-color:#9f9fa3'" />
                         <span style="margin:0 0.5em 0 1em">{{ detailsData.list.name }}号机油机</span>
-                        <img :src="uurl" style="width: 1em;">
+                        <img :src="uurl" style="width: 1.5em;margin-top: 0.3vh;">
                     </el-col>
                     <el-col :span="24" class="oilInfo-bottom">
                         <span class='oilInfo-item'>出厂编号:</span>{{ detailsData.list.serialNumber }}
@@ -137,7 +137,7 @@
                 <el-card class="oilInfo-msg oilInfo-bottom"
                     @click="toParts(item.name, item.mainBoard_NozzleNo, item.onlineStatus, item.fuelName, item.alarming, item.code)">
                     <el-row class="oilInfo-bottom">
-                        <img :src="url" class="oilInfo-img">
+                        <img :src="urll" class="oilInfo-img">
                         <div>
                             <el-col :span="24" class="oilInfo-bottom">
                                 <el-text tag="b">逻辑枪号:{{ item.name }}</el-text>
@@ -145,7 +145,7 @@
                                     <div class="status-point"
                                         :style="item.onlineStatus == '在线' ? 'background-color:#5b53f9' : 'background-color:#9f9fa3'">
                                     </div>
-                                    <img :src="uurl" style="width: 1em;">
+                                    <img :src="uurl" style="width: 1.5em;margin-top: 0.3vh;margin-left: 1vh;">
                                 </div>
                             </el-col>
                             <el-col :span="24" class="oilInfo-bottom">
@@ -190,7 +190,8 @@ import {
 
 /******************************数据对象***************************************/
 
-const url = '/src/assets/logo-com.png'
+const url = '/src/assets/jiayouzhan.png'
+const urll = '/src/assets/youzhan.png'
 const uurl = '/src/assets/map/IconParkSolidCheckOne.png'
 const urrl = '/src/assets/map/IconParkSolidCloseOne.png'
 
@@ -452,9 +453,9 @@ const onShowHide = () => {
 
 .oilInfo-img {
     margin-right: 20px;
-    width: 75px;
-    height: 75px;
-    background-color: #ccc;
+    width: 80px;
+    height: 80px;
+    // background-color: #ccc;
     border-radius: 8px;
 }
 
@@ -479,13 +480,10 @@ const onShowHide = () => {
 // 小圆点
 .status-point {
     display: inline-block;
-    width: 6px;
-    height: 6px;
+    width: 10px;
+    height: 10px;
     border-radius: 50%;
-    position: absolute;
-    right: 10%;
-    top: 30%;
-    margin-right: 30px;
+    margin-right: 10px;
 }
 
 .oilInfo-con-first {

+ 25 - 5
admin.ui.plus-master/src/views/admin/statement/partInformation/index.vue

@@ -1,6 +1,7 @@
 <template>
     <div class="container">
         <el-col class="main" :span="4">
+            <img :src="url" class="oilInfo-img">
             <el-row justify="space-between">
                 <text>1、{{ parameter.status }}</text>
                 <text>2、{{ parameter.NozzleNo }}</text>
@@ -23,8 +24,9 @@
             </el-row>
         </el-col>
         <el-col class="bottom" :span="5">
+            <img :src="urll" class="oilInfo-img">
+            <text class="title">计量器</text>
             <el-row>
-                <text class="title">计量器</text>
             </el-row>
             <el-row>
                 <text>序列号:</text>
@@ -80,9 +82,10 @@
             </el-row>
         </el-col>
         <el-col class="right-top" :span="5">
+            <img :src="url" class="oilInfo-img">
+            <text class="title">监控微处理器</text>
+            <text class="statusBox">{{ 1 }}</text>
             <el-row>
-                <text class="title">监控微处理器</text>
-                <text class="statusBox">{{ 1 }}</text>
             </el-row>
             <el-row>
                 <text>校验ID:{{ 2 }}</text>
@@ -107,8 +110,9 @@
             </el-row>
         </el-col>
         <el-col class="right" :span="5">
+            <img :src="url" class="oilInfo-img">
+            <text class="title">编码器</text>
             <el-row>
-                <text class="title">编码器</text>
                 <text class="statusBox">{{ Data.partDetails.encoderControls.onlineStatus }}</text>
             </el-row>
             <el-row>
@@ -134,8 +138,9 @@
             </el-row>
         </el-col>
         <el-col class="right-bottom" :span="5">
+            <img :src="url" class="oilInfo-img">
+            <text class="title">加密显示屏</text>
             <el-row>
-                <text class="title">加密显示屏</text>
                 <text class="statusBox">{{ Data.partDetails.displayControls.onlineStatus }}</text>
             </el-row>
             <el-row>
@@ -155,6 +160,13 @@ import { useRoute } from 'vue-router';
 import { partsFilterModel } from "/@/api/admin/reportManagement/partInformation/partInformationDto";
 import { partInformationApi } from "/@/api/admin/reportManagement/partInformation/partInformationApi";
 
+const url = '/src/assets/youqiang.png'
+const urll = '/src/assets/jiliangqi.png'
+const urlll = '/src/assets/youqiang.png'
+const urllll = '/src/assets/youqiang.png'
+const urlllll = '/src/assets/youqiang.png'
+const urllllll = '/src/assets/youqiang.png'
+
 
 const router = useRoute()
 // 中间内容 - 传值
@@ -329,4 +341,12 @@ onMounted(() => {
 .el-row{
     margin-bottom: 5px;
 }
+
+.oilInfo-img {
+    margin-right: 1vh;
+    width: 65px;
+    height: 60px;
+    // background-color: #ccc;
+    border-radius: 8px;
+}
 </style>

+ 7 - 7
admin.ui.plus-master/src/views/admin/workbench/index.vue

@@ -99,7 +99,7 @@ const state = reactive({
     {
       num1: 0,
       // num2: '-12.32',
-      num3: '标备案主板',
+      num3: '标备案主板',
       num4: 'fa fa-microchip',
       color1: '#FF6462',
       color2: '--next-color-primary-lighter',
@@ -220,13 +220,13 @@ const lineChart = ref({
   option : {
     backgroundColor: state.charts.bgColor,
     title: {
-      text: '标灌注',
+      text: '标灌注',
       x: 'left',
       textStyle: { fontSize: '15', color: state.charts.color },
     },
     grid: { top: 70, right: 20, bottom: 30, left: 30 },
     tooltip: { trigger: 'axis' },
-    legend: { data: ['ECVR-FM', '团标主板', '团标备案主板', 'ECVR-FM备案'], right: 0 },
+    legend: { data: ['ECVR-FM', '国标主板', '国标备案主板', 'ECVR-FM备案'], right: 0 },
     xAxis: {
       data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
     },
@@ -255,7 +255,7 @@ const lineChart = ref({
         },
       },
       {
-        name: '标主板',
+        name: '标主板',
         type: 'line',
         symbolSize: 6,
         symbol: 'circle',
@@ -271,7 +271,7 @@ const lineChart = ref({
         },
       },
       {
-        name: '标备案主板',
+        name: '标备案主板',
         type: 'line',
         symbolSize: 6,
         symbol: 'circle',
@@ -327,11 +327,11 @@ const initPieChart = () => {
   for (var i = 0; i < pieChart.getName.length; i++) {
     data.push({ name: pieChart.getName[i], value: pieChart.getValue[i] })
   }
-  const colorList = ['#51A3FC', '#36C78B', '#FEC279', '#968AF5', '#B0C54EFF','#E720E8','#E710E8']
+  const colorList = ['#E720E8', '#36C78B', '#FEC279', '#968AF5', '#B0C54EFF','#51A3FC','#E710E8','#75c7c0','#fd95de','#5900ff','#e4252e','#c8ff00','#65808d']
   const option = {
     backgroundColor: state.charts.bgColor,
     title: {
-      text: '标灌注',
+      text: '标灌注',
       x: 'left',
       textStyle: { fontSize: '15', color: state.charts.color },
     },

+ 0 - 0
admin.ui.plus-master/src/views/admin/statement/alarmRules/components/add-alarmRules.vue → admin.ui.plus-master/src/views/admin/yujing/alarmRules/components/add-alarmRules.vue


+ 0 - 0
admin.ui.plus-master/src/views/admin/statement/alarmRules/components/pushTemplate.vue → admin.ui.plus-master/src/views/admin/yujing/alarmRules/components/pushTemplate.vue


+ 8 - 2
admin.ui.plus-master/src/views/admin/statement/alarmRules/index.vue → admin.ui.plus-master/src/views/admin/yujing/alarmRules/index.vue

@@ -56,8 +56,7 @@
               :label="column.label" />
             <el-table-column label="状态" width="80" align="center" show-overflow-tooltip>
               <template #default="{ row }">
-                <el-tag type="success" v-if="row.isActive">启用</el-tag>
-                <el-tag type="danger" v-else>禁用</el-tag>
+                <StatusBox :status="row.isActive ? '启用' : '禁用'" />
               </template>
             </el-table-column>
 
@@ -93,8 +92,13 @@ import { defineAsyncComponent, onBeforeMount, onMounted, reactive, ref, watch }
 import { alarmRluesFilterModel_SearchFilter, alarmRluesFilterModel, PageInputAlarmRluesFilterModel } from "/@/api/admin/AlarmService/alarmRulesDto";
 import { alarmRulesApi } from "/@/api/admin/AlarmService/alarmRulesApi";
 import eventBus from "/@/utils/mitt";
+import StatusBox from '/@/components/StatusBox.vue';
+import { useDynamicPageSize } from "/@/composables/useDynamicPageSize";
 
 
+// 使用组合式函数获取分页状态
+const pageState = useDynamicPageSize(10, 15);
+
 /**页面对象 */
 const Data = reactive({
   time1: '',
@@ -263,6 +267,8 @@ onBeforeMount(() => {
 
 // 挂载时
 onMounted(async () => {
+  // 初始化分页大小
+  Data.pageInput.pageSize = pageState.pageInput.pageSize;
   await init()
   eventBus.off('refreshView')
   eventBus.on('refreshView', async () => {

+ 36 - 24
admin.ui.plus-master/src/views/admin/statement/alarmRules/template.vue → admin.ui.plus-master/src/views/admin/yujing/alarmRules/template.vue

@@ -7,31 +7,30 @@
                 <el-card class="mt8" shadow="hover">
                     <el-form :model="Data.Filter" @submit.stop.prevent>
                         <el-form-item prop="name" style="width: 100%">
-                            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                            <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
                                 <el-form-item label="模板名称">
-                                    <el-input v-model="Data.time1" placeholder="请输入模板名称" clearable></el-input>
+                                    <el-input v-model="Data.Filter.templateName" placeholder="请输入模板名称" clearable></el-input>
                                 </el-form-item>
                             </el-col>
-                            <el-col :xs="24" :sm="14" :md="10" :lg="8" :xl="6" class="mb20">
-                              <el-form-item label="状态">
-                                  <el-select  placeholder="请选择上传状态">
-                                   <el-option label="所有" :value="''"></el-option>
-                                   <el-option label="正常" :value="''"></el-option>
-                                   <el-option label="未授权" :value="''"></el-option>
+                            <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                                <el-form-item label="状态">
+                                  <el-select v-model="Data.Filter.isActive" placeholder="请选择上传状态">
+                                   <el-option label="所有" :value="null"></el-option>
+                                   <el-option label="正常" :value="true"></el-option>
+                                   <el-option label="未授权" :value="false"></el-option>
                                  </el-select>
                              </el-form-item>
                            </el-col>
-                           <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-                <el-form-item label="模板类型">
-                  <el-select placeholder="请选择模板类型类型">
-                    <el-option label="所有" :value="''"></el-option>
-                    <el-option label="电子邮箱" :value="''"></el-option>
-                    <el-option label="微信" :value="''"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
+                           <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                            <el-form-item label="模板类型">
+                                <el-select v-model="Data.Filter.templateType" placeholder="请选择模板类型">
+                                  <el-option label="所有" :value="''"></el-option>  <!-- 改为null -->
+                                  <el-option label="电子邮箱" :value="''"></el-option>  <!-- 使用实际值 -->
+                                  <el-option label="微信" :value="''"></el-option>  <!-- 使用实际值 -->
+                                </el-select>
+                            </el-form-item>
+                          </el-col>
                         </el-form-item>
-
                     </el-form>
  
                     <hr>
@@ -57,10 +56,9 @@
                             :label="column.label" />
                             <el-table-column prop="creator" label="添加人" />
                             <el-table-column prop="createTime" label="添加时间" />
-                        <el-table-column label="状态" width="80" align="center" show-overflow-tooltip>
+                        <el-table-column label="模板状态" width="80" align="center" show-overflow-tooltip>
                             <template #default="{ row }">
-                                <el-tag type="success" v-if="row.isActive">启用</el-tag>
-                                <el-tag type="danger" v-else>禁用</el-tag>
+                                <StatusBox :status="row.isActive ? '启用' : '禁用'" />
                             </template>
                         </el-table-column>
 
@@ -79,8 +77,8 @@
 
                     </el-table>
                     <div class="my-flex my-flex-end" style="margin-top: 20px">
-                        <el-pagination v-model:currentPage="Data.pageInput.currentPage"
-                            v-model:page-size="Data.pageInput.pageSize" :total="Data.total"
+                        <el-pagination v-model:currentPage="pageState.pageInput.currentPage"
+                            v-model:page-size="pageState.pageInput.pageSize" :total="Data.total"
                             :page-sizes="[5, 10, 15, 20, 50, 100]" small background @size-change="onSizeChange"
                             @current-change="onCurrentChange" layout="total, sizes, prev, pager, next, jumper" />
                     </div>
@@ -98,6 +96,11 @@ import { defineAsyncComponent, onBeforeMount, onMounted, reactive, ref, watch }
 import { pushTemplateModel_SearchFilter, pushTemplateModel, PageInputPushTemplateFilterModel } from "/@/api/admin/AlarmService/pushTemplateDto";
 import { pushTemplateApi } from "/@/api/admin/AlarmService/pushTemplateApi";
 import eventBus from "/@/utils/mitt";
+import StatusBox from '/@/components/StatusBox.vue';
+import { useDynamicPageSize } from "/@/composables/useDynamicPageSize";
+
+
+const pageState = useDynamicPageSize(10, 15);
 
 
 /**页面对象 */
@@ -111,7 +114,13 @@ const Data = reactive({
     /**条件查询模块 */
     Filter: {
         /** 模板名称 */
-        templateName: ""
+        templateName: undefined,
+        // 模板内容
+        templateContent: undefined,
+        // 数据id
+        id: undefined,
+        // 数据状态
+        isActive: undefined
     } as pushTemplateModel_SearchFilter,
     /**表格信息 */
     tableModel: [] as pushTemplateModel[],
@@ -121,6 +130,7 @@ const Data = reactive({
         { prop: 'templateName', label: '模板名称' },
         { prop: 'templateType', label: '模板类型' },
         { prop: 'templateContent', label: '模板内容' },
+        { prop: 'isActive', label: '模板状态' },
     ],
     /**分页总数 */
     total: 0,
@@ -224,6 +234,8 @@ onBeforeMount(() => {
 
 // 挂载时
 onMounted(async () => {
+       // 初始化分页大小
+       Data.pageInput.pageSize = pageState.pageInput.pageSize;
     await init()
     eventBus.off('refreshView')
     eventBus.on('refreshView', async () => {

+ 3 - 3
admin.ui.plus-master/src/views/example/codeGeneration/index.vue

@@ -135,10 +135,10 @@ const onQuery = async () => {
   fetch(state.filter.name)
     .then(response=>response.json())
     .then(swaggerJson=>{
-      //console.log(swaggerJson)
+      // console.log(swaggerJson)
       dataJson.value=swaggerJson
       const {paths} =dataJson.value
-      //console.log(paths)
+      // console.log(paths)
       for(const path in paths){
         if('get' in paths[path]){
           let api:any=path
@@ -158,7 +158,7 @@ const onQuery = async () => {
         }
         if('post' in paths[path]){
           let summary:any=paths[path].post.summary?paths[path].post.summary:''
-          if(summary===''||summary.includes('查询')||summary.includes('获取')){
+          if(summary===''||summary.includes('查询')||summary.includes('获取')||summary.includes('管理')){
             let api:any=path
             let methods:any='POST'
             let isQuery:any=false