Parcourir la source

feat(部件详情页,首页): 对接接口,修改小问题

对接完部件详情页中的基础信息部分,修改首页中的logo,改变了部件详情页中的路由跳转参数,导致跳转页面后并没有高亮
wyoujia il y a 1 an
Parent
commit
a40fe850b0

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

@@ -3,3 +3,4 @@ ENV = 'development'
 
 # 本地环境接口地址
 VITE_API_URL = 'http://ipos.biz:8070'
+#VITE_API_URL = 'http://192.168.0.12:8000'

+ 13 - 83
admin.ui.plus-master/src/api/admin/productionManagement/ComponentDetails.ts

@@ -1,5 +1,7 @@
-import {HttpClient} from "/@/api/admin/http-client";
+import {ContentType, HttpClient} from "/@/api/admin/http-client";
 import {pageInput} from "/@/api/admin/shareDto/shareDto";
+import {filterData} from "/@/api/admin/productionManagement/ComponentDetailsDto";
+import {AxiosResponse} from "axios";
 
 export class ComponentDetails<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
   /**
@@ -13,85 +15,15 @@ export class ComponentDetails<SecurityDataType = unknown> extends HttpClient<Sec
   */
 
   timer = 500
-  getBasicInfo = (params : any) : any  => {
-    // eslint-disable-next-line no-console
-    console.log(params)
-    return new Promise((resolve) => {
-      setTimeout(() => {
-        resolve({
-          basicInfo: [
-            {
-              goodsTitle: "部件名称",
-              goodsValue: "TQC+主板12321312312311231231231231232312312312123"
-            },
-            {
-              goodsTitle: "部件类型",
-              goodsValue: "计控主板12312312311231231231231232323123112312312312312323231231231123123123123123232"
-            },
-            {
-              goodsTitle: "物料号",
-              goodsValue: "TOK-20021203"
-            },
-            {
-              goodsTitle: "生产料号",
-              goodsValue: "SC202307051"
-            },
-            {
-              goodsTitle: "序列号",
-              goodsValue: "20121221"
-            },
-            {
-              goodsTitle: "软件版本",
-              goodsValue: ""
-            },
-            {
-              goodsTitle: "厂商名称",
-              goodsValue: "托肯恒山"
-            },
-            {
-              goodsTitle: "中化密钥状态",
-              goodsValue: "已绑定"
-            },
-            {
-              goodsTitle: "团标密钥状态",
-              goodsValue: "已备案"
-            },
-            {
-              goodsTitle: "状态",
-              goodsValue: "正常"
-            },
-            {
-              goodsTitle: "创建时间",
-              goodsValue: "2023-07-05"
-            },
-            {
-              goodsTitle: "生产时间",
-              goodsValue: "2023-07-05"
-            },
-            {
-              goodsTitle: "备注",
-              goodsValue: ""
-            },
-            {
-              goodsTitle: "检测时间",
-              goodsValue: "2023-07-06"
-            },
-            {
-              goodsTitle: "检测员",
-              goodsValue: "生产员"
-            }
-          ],
-          goodsImg: {
-            imgUrl: "https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg",
-            title: "哈哈"
-          }
-        })
-      },this.timer)
-
+  getBasicInfo = (data:filterData) : any  =>
+    this.request<AxiosResponse,any>({
+      path:'/api/app/compoent/get-part-details',
+      method: 'POST',
+      body: data,
+      secure: true,
+      type: ContentType.Json,
+      format: 'json',
     })
-
-  }
-
   /**
   * No description
   *
@@ -104,8 +36,6 @@ export class ComponentDetails<SecurityDataType = unknown> extends HttpClient<Sec
 
   getProductionLog = (data: pageInput, params: any ) : any => {
     // eslint-disable-next-line no-console
-    console.log(params)
-    console.log(data)
     return new Promise((resolve) => {
       setTimeout(()=> {
         resolve({
@@ -150,7 +80,7 @@ export class ComponentDetails<SecurityDataType = unknown> extends HttpClient<Sec
           ],
           pageInput: {
             currentPage: 1,
-            pageSize: 20
+            pageSize: 5
           },
           total: 100
         })
@@ -204,7 +134,7 @@ export class ComponentDetails<SecurityDataType = unknown> extends HttpClient<Sec
           ],
           pageInput: {
             currentPage: 1,
-            pageSize: 20
+            pageSize: 5
           },
           total: 100
         })

+ 47 - 4
admin.ui.plus-master/src/api/admin/productionManagement/ComponentDetailsDto.ts

@@ -30,6 +30,7 @@ export interface imageInter {
   /**图片title */
   title: string | null
 }
+
 /**
  * @name: 数据对象接口
  * @description: 生产管理 - 部件详情 - 基本信息
@@ -37,10 +38,39 @@ export interface imageInter {
  * @date 2023-23-24 16:23:48
  */
 export interface goodsInformationBasic {
-  /**基本信息item */
-  basicInfo: goodsInformationBasicItem [] | null
-  /**基本信息图片 */
-  goodsImg: imageInter
+  // //后期开发
+  // /**基本信息item */
+  // basicInfo: goodsInformationBasicItem [] | null
+  // /**基本信息图片 */
+  // goodsImg: imageInter
+  /**序号*/
+  guid: number,
+  /**物料名称*/
+  bomName: string,
+  /**物料号*/
+  bomNo:string,
+  /**生产编号*/
+  bomProNo: string,
+  /**cpuid*/
+  cpuId: string,
+  /**软件版本*/
+  software_v: string,
+  /**状态*/
+  status: number,
+  /**密钥状态*/
+  key_name: number,
+  /**团标状态*/
+  stand_name: number,
+  /**创建时间*/
+  createTime: string,
+  /**备注*/
+  remark: string,
+  /**检测时间*/
+  detectionTime: string,
+  /**检测时间*/
+  detectionEmployee: string,
+  /**图片*/
+  img: string
 }
 
 
@@ -113,6 +143,7 @@ export interface alarmLog {
 export interface adminProductGoodsInfoDto {
   /**部件id */
   id:string | null,
+  data: filterData | null,
   /**显示加载效果 */
   loadingBasic: boolean,
   loadingProduct: boolean,
@@ -128,3 +159,15 @@ export interface adminProductGoodsInfoDto {
   /**报警日志 */
   alarmLog: dynamicTable
 }
+
+/**基本信息请求参数*/
+export interface filterData {
+  filter:{
+    /**物料号*/
+    bomName?:string | null
+    bomType?: number | null
+    /**生产编号*/
+    bomMateNo?: string | null
+    bomProNo?: string | null
+  }
+}

+ 0 - 0
admin.ui.plus-master/src/assets/公司logo.png → admin.ui.plus-master/src/assets/logo-com.png


+ 1 - 1
admin.ui.plus-master/src/layout/component/columnsAside.vue

@@ -56,7 +56,7 @@ import { useRoutesList } from '/@/stores/routesList'
 import { useThemeConfig } from '/@/stores/themeConfig'
 import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes'
 import mittBus from '/@/utils/mitt'
-import logoMini from '/@/assets/公司logo.png'
+import logoMini from '/src/assets/logo-com.png'
 
 // 定义变量内容
 const columnsAsideOffsetTopRefs = ref<RefType>([])

+ 1 - 1
admin.ui.plus-master/src/layout/logo/index.vue

@@ -12,7 +12,7 @@
 import { computed } from 'vue'
 import { storeToRefs } from 'pinia'
 import { useThemeConfig } from '/@/stores/themeConfig'
-import logoMini from '/@/assets/logo-mini.svg'
+import logoMini from '/@/assets/logo-com.png'
 
 // 定义变量内容
 const storesThemeConfig = useThemeConfig()

+ 3 - 0
admin.ui.plus-master/src/router/index.ts

@@ -52,6 +52,9 @@ export const router = createRouter({
 export function formatFlatteningRoutes(arr: any) {
   if (arr.length <= 0) return false
   for (let i = 0; i < arr.length; i++) {
+    // if(process.env.NODE_ENV === 'development'){
+    //
+    // }
     if (arr[i].children) {
       arr = arr.slice(0, i + 1).concat(arr[i].children, arr.slice(i + 1))
     }

+ 1 - 1
admin.ui.plus-master/src/views/admin/login/index.vue

@@ -49,7 +49,7 @@ import { defineAsyncComponent, onMounted, reactive, computed } from 'vue'
 import { storeToRefs } from 'pinia'
 import { useThemeConfig } from '/@/stores/themeConfig'
 import { NextLoading } from '/@/utils/loading'
-import logoMini from '/@/assets/公司logo.png'
+import logoMini from '/src/assets/logo-com.png'
 import loginMain from '/@/assets/login-main.svg'
 import loginBg from '/@/assets/login-bg.svg'
 

+ 175 - 35
admin.ui.plus-master/src/views/admin/product/goodInfo.vue

@@ -7,37 +7,171 @@
         <el-card shadow="hover" header="基础信息">
           <div class="basicInformation" v-loading="goods.loadingBasic">
             <div class="basicInformation-left">
-              <div v-for="(item, index) in goods.basicInformation.basicInfo" :key="index" class="item">
+              <div class="item">
                 <el-popover
                   placement="top-start"
-                  :title="item.goodsTitle"
                   :width="200"
+                  title="物料名称"
                   trigger="hover"
-                  :content="item.goodsValue"
+                  :content="goods.basicInformation.bomName"
                 >
                   <template #reference>
-                    <span class="m-2">{{item.goodsTitle}} : {{item.goodsValue}}</span>
+                    <span class="m-2"> 物料名称: {{goods.basicInformation.bomName}}</span>
                   </template>
                 </el-popover>
               </div>
-            </div>
-            <div class="basicInformation-right" v-if="goods.basicInformation.goodsImg">
-              <div @click="showBigPic(goods.basicInformation.goodsImg.imgUrl)">
-                <el-image loading="lazy"
-                          alt="fgg"
-                          class="img"
-                          fit="fill"
-                          :src="goods.basicInformation.goodsImg.imgUrl" />
+              <div class="item">
+                <el-popover
+                  placement="top-start"
+                  :width="200"
+                  title="物料号"
+                  trigger="hover"
+                  :content="goods.basicInformation.bomNo"
+                >
+                  <template #reference>
+                    <span class="m-2"> 物料号: {{goods.basicInformation.bomNo}}</span>
+                  </template>
+                </el-popover>
+              </div>
+              <div class="item">
+                <el-popover
+                  placement="top-start"
+                  :width="200"
+                  title="CPUID"
+                  trigger="hover"
+                  :content="goods.basicInformation.cpuId"
+                >
+                  <template #reference>
+                    <span class="m-2"> CPUID: {{goods.basicInformation.cpuId}}</span>
+                  </template>
+                </el-popover>
+              </div>
+              <div class="item">
+                <el-popover
+                  placement="top-start"
+                  :width="200"
+                  title="软件版本"
+                  trigger="hover"
+                  :content="goods.basicInformation.software_v"
+                >
+                  <template #reference>
+                    <span class="m-2"> 软件版本: {{goods.basicInformation.software_v}}</span>
+                  </template>
+                </el-popover>
+              </div>
+              <div class="item">
+                <el-popover
+                  placement="top-start"
+                  :width="200"
+                  title="状态"
+                  trigger="hover"
+                  :content="goods.basicInformation.status"
+                >
+                  <template #reference>
+                    <span class="m-2"> 状态: {{goods.basicInformation.status}}</span>
+                  </template>
+                </el-popover>
+              </div>
+              <div class="item">
+                <el-popover
+                  placement="top-start"
+                  :width="200"
+                  title="密钥状态"
+                  trigger="hover"
+                  :content="goods.basicInformation.key_name"
+                >
+                  <template #reference>
+                    <span class="m-2"> 密钥状态: {{goods.basicInformation.key_name}}</span>
+                  </template>
+                </el-popover>
+              </div>
+              <div class="item">
+                <el-popover
+                  placement="top-start"
+                  :width="200"
+                  title="团标状态"
+                  trigger="hover"
+                  :content="goods.basicInformation.stand_name"
+                >
+                  <template #reference>
+                    <span class="m-2"> 团标状态: {{goods.basicInformation.stand_name}}</span>
+                  </template>
+                </el-popover>
+              </div>
+              <div class="item">
+                <el-popover
+                  placement="top-start"
+                  :width="200"
+                  title="创建时间"
+                  trigger="hover"
+                  :content="goods.basicInformation.createTime"
+                >
+                  <template #reference>
+                    <span class="m-2"> 创建时间: {{goods.basicInformation.createTime}}</span>
+                  </template>
+                </el-popover>
+              </div>
+              <div class="item">
+                <el-popover
+                  placement="top-start"
+                  :width="200"
+                  trigger="hover"
+                  title="备注"
+                  :content="goods.basicInformation.remark"
+                >
+                  <template #reference>
+                    <span class="m-2"> 备注: {{goods.basicInformation.remark}}</span>
+                  </template>
+                </el-popover>
+              </div>
+              <div class="item">
+                <el-popover
+                  placement="top-start"
+                  :width="200"
+                  title="检测时间"
+                  trigger="hover"
+                  :content="goods.basicInformation.detectionTime"
+                >
+                  <template #reference>
+                    <span class="m-2"> 检测时间: {{goods.basicInformation.detectionTime}}</span>
+                  </template>
+                </el-popover>
+              </div>
+              <div class="item">
+                <el-popover
+                  placement="top-start"
+                  :width="200"
+                  title="检测员"
+                  trigger="hover"
+                  :content="goods.basicInformation.detectionEmployee"
+                >
+                  <template #reference>
+                    <span class="m-2"> 检测员: {{goods.basicInformation.detectionEmployee}}</span>
+                  </template>
+                </el-popover>
               </div>
-              <div class="text">{{goods.basicInformation.goodsImg.title}}</div>
             </div>
+            <div class="basicInformation-right" >
+                <div @click="showBigPic(goods.basicInformation.img)" v-if="goods.basicInformation.img">
+                  <el-image loading="lazy"
+                            alt="fgg"
+                            class="img"
+                            fit="fill"
+                            :src="goods.basicInformation.img" />
+                </div>
+                <div @click="showBigPic(goods.basicInformation.img)" v-else>
+                  <div >
+                    暂无图片
+                  </div>
+                </div>
+              </div>
           </div>
         </el-card>
       </el-col>
 
       <!-- 生产日志 -->
       <el-col :xs="24" >
-        <el-card style="height: 70vh" class="my-fill mt8"  shadow="hover" header="生产日志">
+        <el-card style="height: 35vh" class="my-fill mt8"  shadow="hover" header="生产日志">
           <el-table v-loading="goods.loadingProduct" :data="goods.productionLog.tableData" row-key="id" style="width: 100%">
             <el-table-column v-for="column in goods.productionLog.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"  />
           </el-table>
@@ -46,7 +180,7 @@
               v-model:currentPage="goods.productionLog.pageInput.CurrentPage"
               v-model:page-size="goods.productionLog.pageInput.PageSize"
               :total="goods.productionLog.total"
-              :page-sizes="[10, 20, 50, 100]"
+              :page-sizes="[5, 10, 20, 50, 100]"
               small
               background
               @size-change="onProductionLogSizeChange"
@@ -59,7 +193,7 @@
 
       <!-- 报警日志 -->
       <el-col :span="24" >
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover" header="报警日志">
+        <el-card style="height: 35vh" class="my-fill mt8" shadow="hover" header="报警日志">
           <el-table v-loading="goods.loadingAlarm" :data="goods.alarmLog.tableData" row-key="id" style="width: 100%">
             <el-table-column v-for="column in goods.alarmLog.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"  />
           </el-table>
@@ -68,7 +202,7 @@
               v-model:currentPage="goods.alarmLog.pageInput.CurrentPage"
               v-model:page-size="goods.alarmLog.pageInput.PageSize"
               :total="goods.alarmLog.total"
-              :page-sizes="[10, 20, 50, 100]"
+              :page-sizes="[5, 10, 20, 50, 100]"
               small
               background
               @size-change="onAlarmLogSizeChange"
@@ -100,13 +234,15 @@ import type {
   goodsInformationBasic,
   productionLog
 } from "/@/api/admin/productionManagement/ComponentDetailsDto";
-import {adminProductGoodsInfoDto} from "/@/api/admin/productionManagement/ComponentDetailsDto";
+import {adminProductGoodsInfoDto, filterData} from "/@/api/admin/productionManagement/ComponentDetailsDto";
 import type {columnsProps, pageInput} from "/@/api/admin/shareDto/shareDto";
 
 //组件的页面对象
 const goods = reactive({
   /**部件id */
   id:"",
+  /**页面请求参数*/
+  data:{} as filterData,
   /**显示加载效果 */
   loadingBasic: false,
   loadingProduct: false,
@@ -117,6 +253,7 @@ const goods = reactive({
   imageUrl: "",
   /**基础信息 */
   basicInformation: {} as goodsInformationBasic,
+
   /**生产日志 */
   productionLog: {
     /**表格数据 */
@@ -126,7 +263,7 @@ const goods = reactive({
     /**页面分页 */
     pageInput: {
       currentPage: 1,
-      pageSize: 20
+      pageSize: 5
     } as pageInput,
     /**总数 */
     total: 0
@@ -140,7 +277,7 @@ const goods = reactive({
     /**页面分页 */
     pageInput: {
       CurrentPage: 1,
-      PageSize: 20
+      PageSize: 5
     } as pageInput,
     /**总数 */
     total: 0
@@ -185,9 +322,11 @@ const onAlarmLogCurrentChange = (val) => {
  */
 const initBasicInformation =  async () => {
   goods.loadingBasic = true
-  goods.basicInformation = await new ComponentDetails().getBasicInfo(goods.id)
+  const res = await new ComponentDetails().getBasicInfo({filter:goods.data}).catch(() => {
+    goods.loadingBasic = false
+  })
+  goods.basicInformation = res?.data?.list[0]
   goods.loadingBasic = false
-  // console.log(goods.basicInformation)
 }
 
 const initProductionLog = async () => {
@@ -208,6 +347,7 @@ const initAlarmLog = async () => {
 
 onMounted(() => {
   goods.id = <string>router.currentRoute.value.params.id
+  goods.data = { ...router.currentRoute.value.query as filterData}
   /**初始化 */
   initBasicInformation()
   initProductionLog()
@@ -217,7 +357,7 @@ onMounted(() => {
 </script>
 <style scoped lang="scss">
 .goodInfo{
-  font-weight: 600;
+  font-weight: 500;
   .el-card{
     margin-bottom: 20px;
   }
@@ -234,14 +374,13 @@ onMounted(() => {
       display: -webkit-flex; /* Safari */
       justify-content: space-around;
       flex-wrap: wrap;
-      padding: 12px;
       height: 100%;
       max-width: 65%;
       min-width: 300px;
       .item{
         cursor: pointer;
         width: 240px;/*设置显示的最大宽度*/
-        height: 50px;
+        height:40px;
         overflow:hidden;/*超出部分隐藏*/
         white-space:nowrap;/*强制单行显示*/
         text-overflow: ellipsis;
@@ -251,9 +390,9 @@ onMounted(() => {
     .basicInformation-right{
       width: 50%;
       height: 100%;
-      max-width: 400px;
-      min-width: 300px;
-      margin: 20px 10px;
+      max-width: 300px;
+      min-width: 200px;
+      padding: 0 10px;
       .img {
         cursor: pointer;
         box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 8px;
@@ -261,13 +400,14 @@ onMounted(() => {
       .img:hover {
         box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
       }
-      .text {
-        height: 50px;
-        display: flex;
-        display: -webkit-flex; /* Safari */
-        justify-content: center;
-        align-items: center;
-        font-size: 1.4rem;
+      div{
+        width: 300px;
+        height: 200px;
+        cursor: pointer;
+        box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 8px;
+      }
+      div:hover{
+        ox-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
       }
     }
   }

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

@@ -105,7 +105,7 @@
                 <el-button v-auth="'api:admin:file:delete'" icon="ele-Delete" size="small" text type="danger" @click="onDelete(row)">删除</el-button> -->
                 <el-link
                   class="my-el-link mr12 ml12"
-                  @click="$router.push(`/product/${row.guid}`)"
+                  @click="toPage(row)"
                   type="primary"
                   icon="ele-edit"
                   size="small"
@@ -140,6 +140,7 @@ import dayjs from 'dayjs'
 import eventBus from '/@/utils/mitt'
 import {PageInputFileGetPageDto} from "/@/api/admin/productionManagement/ComopnentDto";
 import {ComponentGetPageOutPut} from "/@/api/admin/productionManagement/CommunalDto";
+import router from "/@/router";
 //import { isImage } from '/@/utils/test'
 //import commonFunction from '/@/utils/commonFunction'
 
@@ -223,6 +224,10 @@ const onUpload = () => {
   fileUploadRef.value.open()
 }
 
+const toPage = (row) => {
+  router.push({path:`/product/${row.guid}`,query:{ bomMateNo: row.bomProNo,bomName:row.bomNo}})
+}
+
 //const onDelete = (row: FileGetPageOutput) => {
 //proxy.$modal
 //.confirmDelete(`确定要删除文件【${row.fileName}${row.extension}】?`)