Browse Source

实现了sdk授权页面静态页面的开发,未编写dto对象以及api,修复了生产管理中以为路径问题导致页面点击后无数据的问题,使用固定高度优化了表格,解决了手机端上无法完整查看表格数据的问题

wyoujia 1 year ago
parent
commit
acbb33bb9c

+ 11 - 0
admin.ui.plus-master/src/api/admin/deviceAuthorization/README.md

@@ -0,0 +1,11 @@
+#### 简介
+
+	deviceAuthorization 目录中的ts文件用于 设备授权管理 后端接口请求交互和转换前端页面对象处理
+
+#### oilSdkAuthorDto.ts
+
+	设备授权管理 - 油机SDK授权页面 数据对象的DTO
+
+#### oilSdkAuthor.ts
+
+	设备授权管理 - 油机SDK授权页面 发送后端请求数据

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


+ 15 - 0
admin.ui.plus-master/src/api/admin/deviceAuthorization/oilSdkAuthorDto.ts

@@ -0,0 +1,15 @@
+/**
+ *  设备授权管理 - 油机SDK授权页面
+ *  数据对象的Dto
+ * */
+
+
+/**
+ * @name: 数据对象接口
+ * @description: 设备授权管理 - 油机SDK授权页面
+ * @author wyoujia
+ * @date 2023-12-29 11:12:08
+*/
+export interface OilSdkAuthorDto {
+
+}

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

@@ -1,5 +1,5 @@
 import {HttpClient} from "/@/api/admin/http-client";
-import {pageInput} from "/@/api/admin/productionManagement/ComponentDetailsDto";
+import {pageInput} from "/@/api/admin/shareDto/shareDto";
 
 export class ComponentDetails<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
   /**
@@ -133,7 +133,7 @@ export class ComponentDetails<SecurityDataType = unknown> extends HttpClient<Sec
               state:true,
               productionPictures:"2323",
               remarks:"333"
-            }
+            },
           ],
           dynamicColumns: [
             { prop: 'dateOfManufacture', label: '生产时间' },

+ 8 - 7
admin.ui.plus-master/src/api/admin/productionManagement/ComponentDetailsDto.ts

@@ -3,6 +3,8 @@
  *  数据对象的Dto
  * */
 
+import {pageInput} from "/@/api/admin/shareDto/shareDto";
+
 /**
  * @name: 数据对象接口
  * @description: 生产管理 - 部件详情 - 基本信息item
@@ -41,12 +43,7 @@ export interface goodsInformationBasic {
   goodsImg: imageInter
 }
 
-export interface pageInput {
-  /**当前页数 */
-  currentPage: 1,
-  /**展示页数 */
-  pageSize: 20
-}
+
 
 /**
  * @name:
@@ -125,8 +122,12 @@ export interface alarmLog {
  * @date 2023-53-24 16:53:14
  */
 export interface adminProductGoodsInfoDto {
+  /**部件id */
+  id:string | null,
   /**显示加载效果 */
-  loading: boolean,
+  loadingBasic: boolean,
+  loadingProduct: boolean,
+  loadingAlarm: boolean,
   /**图片是否方法显示 */
   showBig: boolean
   /**放大图片的url */

+ 2 - 2
admin.ui.plus-master/src/api/admin/productionManagement/README.md

@@ -1,6 +1,6 @@
 #### 简介
-
-	productionManagement 目录中的ts文件用于后端接口请求交互和转换前端页面对象处理
+	
+	productionManagement 目录中的ts文件用于 生产管理 后端接口请求交互和转换前端页面对象处理
 
 #### CommunalDto.ts
 

+ 14 - 0
admin.ui.plus-master/src/api/admin/shareDto/shareDto.ts

@@ -0,0 +1,14 @@
+/**
+ * 共享的Dto接口
+ *
+ */
+
+/**
+ * 分页标识
+ */
+export interface pageInput {
+  /**当前页数 */
+  currentPage: 1,
+  /**展示页数 */
+  pageSize: 20
+}

+ 119 - 2
admin.ui.plus-master/src/views/admin/authorize/fuelingsdk.vue

@@ -1,11 +1,128 @@
 <template>
-  <div>
-    12321
+  <div class="layout-pd">
+    <!--部件电子档案-->
+    <el-row>
+      <!--操作-->
+      <el-col :xs="24" >
+        <el-card class="mt8" shadow="hover" >
+          <el-form :model="sdkData.filterModel" :inline="true" @submit.stop.prevent>
+            <el-form-item class="form_item" prop="name" style="width:100%">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item label="油站名称">
+                  <el-input v-model="sdkData.filterModel.serviceStationName" placeholder="单行输入" clearable></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item label="项目名称">
+                  <el-input v-model="sdkData.filterModel.entryName" placeholder="单行输入" clearable></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item label="SN">
+                  <el-input v-model="sdkData.filterModel.SN" placeholder="单行输入" clearable></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item label="选择时间">
+                  <el-date-picker
+                    v-model="sdkData.filterModel.selectDate"
+                    type="daterange"
+                    range-separator="To"
+                    start-placeholder="Start date"
+                    end-placeholder="End date"
+                    :size="sdkData.filterModel.sizeDate"
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item>
+                  <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
+                  <el-button type="primary" icon="ele-Delete" @click="onReset"> 重置 </el-button>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item>
+                  <el-button type="primary" icon="ele-UploadFilled" @click="uploadFiles"> 批量导入 </el-button>
+                  <el-button type="primary" icon="ele-Document" @click="exportTable"> 导出表格 </el-button>
+                </el-form-item>
+              </el-col>
+            </el-form-item>
+          </el-form>
+        </el-card>
+      </el-col>
+      <!--表格-->
+      <el-col :xs="24" >
+        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+          <el-table v-loading="sdkData.loading" :data="sdkData.tableModel" row-key="id" style="width: 100%">
+            <el-table-column prop="date" label="序号"  />
+            <el-table-column prop="serviceStationName" label="部件名称"  />
+            <el-table-column prop="entryName" label="物料号"  />
+            <el-table-column prop="SN" label="生产编号"  />
+            <el-table-column prop="effectiveTime" label="CPUID"  />
+            <el-table-column prop="authorization" label="软件版本"  />
+            <el-table-column prop="remark" label="状态" width="120" />
+            <el-table-column label="操作"  fixed="right" header-align="center" align="center">
+              <template #default="{ row }">
+                <el-link
+                  class="my-el-link mr12 ml12"
+                  type="primary"
+                  icon="ele-edit"
+                  size="small"
+                  :underline="false"
+                  target="_blank"
+                >编辑</el-link>
+              </template>
+            </el-table-column>
+          </el-table>
+          <div class="my-flex my-flex-end" style="margin-top: 20px">
+            <el-pagination
+              v-model:currentPage="sdkData.pageInput.currentPage"
+              v-model:page-size="sdkData.pageInput.pageSize"
+              :total="sdkData.total"
+              :page-sizes="[10, 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 {reactive} from "vue";
 
+/**sdk授权页面对象 */
+const sdkData = reactive({
+  /**加载显示 */
+  loading: false,
+  /**条件查询模块 */
+  filterModel: {
+    /**油站名称 */
+    serviceStationName: '',
+    /**项目名称 */
+    entryName: '',
+    /**设备SN */
+    SN: '',
+    /**选择的时间 */
+    selectDate:'',
+    /**时间长度 */
+    sizeDate: ''
+  },
+  /**表格信息 */
+  tableModel: [],
+  /**分页标识 */
+  pageInput:{
+    currentPage: 1,
+    pageSize: 20,
+  },
+  /**分页总数 */
+  total: 0,
+})
 </script>
 
 <style scoped lang="scss">

+ 38 - 41
admin.ui.plus-master/src/views/admin/product/goodInfo.vue

@@ -37,48 +37,44 @@
 
       <!-- 生产日志 -->
       <el-col :xs="24" >
-        <el-card shadow="hover" header="生产日志">
-          <div class="productionLog" >
-            <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>
-            <div class="my-flex my-flex-end" v-if="goods.productionLog.pageInput" style="margin-top: 20px">
-              <el-pagination
-                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]"
-                small
-                background
-                @size-change="onProductionLogSizeChange"
-                @current-change="onProductionLogCurrentChange"
-                layout="total, sizes, prev, pager, next, jumper"
-              />
-            </div>
+        <el-card style="height: 70vh" 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>
+          <div class="my-flex my-flex-end" v-if="goods.productionLog.pageInput" style="margin-top: 20px">
+            <el-pagination
+              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]"
+              small
+              background
+              @size-change="onProductionLogSizeChange"
+              @current-change="onProductionLogCurrentChange"
+              layout="total, sizes, prev, pager, next, jumper"
+            />
           </div>
         </el-card>
       </el-col>
 
       <!-- 报警日志 -->
       <el-col :span="24" >
-        <el-card shadow="hover" header="报警日志">
-          <div class="alarmLog">
-            <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>
-            <div class="my-flex my-flex-end" v-if="goods.alarmLog.pageInput" style="margin-top: 20px">
-              <el-pagination
-                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]"
-                small
-                background
-                @size-change="onAlarmLogSizeChange"
-                @current-change="onAlarmLogCurrentChange"
-                layout="total, sizes, prev, pager, next, jumper"
-              />
-            </div>
+        <el-card style="height: 70vh" 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>
+          <div class="my-flex my-flex-end" v-if="goods.alarmLog.pageInput" style="margin-top: 20px">
+            <el-pagination
+              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]"
+              small
+              background
+              @size-change="onAlarmLogSizeChange"
+              @current-change="onAlarmLogCurrentChange"
+              layout="total, sizes, prev, pager, next, jumper"
+            />
           </div>
         </el-card>
       </el-col>
@@ -103,13 +99,14 @@ import type {
   alarmLog,
   columnsProps,
   goodsInformationBasic,
-  pageInput,
   productionLog
 } from "/@/api/admin/productionManagement/ComponentDetailsDto";
+import {adminProductGoodsInfoDto} from "/@/api/admin/productionManagement/ComponentDetailsDto";
+import type { pageInput } from "/@/api/admin/shareDto/shareDto";
 
 //组件的页面对象
 const goods = reactive({
-  //部件id
+  /**部件id */
   id:"",
   /**显示加载效果 */
   loadingBasic: false,
@@ -134,7 +131,7 @@ const goods = reactive({
     } as pageInput,
     /**总数 */
     total: 0
-  },
+  } as productionLog,
   /**报警日志 */
   alarmLog: {
     /**表格数据 */
@@ -148,8 +145,8 @@ const goods = reactive({
     } as pageInput,
     /**总数 */
     total: 0
-  },
-})
+  } as alarmLog,
+} as adminProductGoodsInfoDto)
 
 
 //查看大图

+ 237 - 236
admin.ui.plus-master/src/views/admin/product/index.vue

@@ -1,244 +1,245 @@
 <template>
-    <div class="layout-pd">
-      <!--部件电子档案-->
-      <el-row>
-        <!--操作-->
-        <el-col :xs="24" >
-          <el-card class="mt8" shadow="hover" >
-            <el-form :model="bomModel.filterModel" :inline="true" @submit.stop.prevent>
-              <el-form-item class="form_item" prop="name" style="width:100%">
-                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
-                  <el-form-item label="物料号">
-                    <el-input v-model="bomModel.filterModel.bomMateNo" placeholder="物料号" clearable></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
-                  <el-form-item label="生产编码">
-                    <el-input v-model="bomModel.filterModel.bomProNo" placeholder="生产编码" clearable></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
-                  <el-form-item label="部件名称">
-                    <el-input v-model="bomModel.filterModel.bomName" placeholder="部件名称" clearable></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
-                  <el-form-item label="部件类型">
-                    <el-select v-model="bomModel.filterModel.bomType" placeholder="请选择部件类型" clearable class="w100">
-                      <el-option label="计税主板" value="1"></el-option>
-                      <el-option label="油气回收" value="2"></el-option>
-                      <el-option label="计量主板" value="3"></el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
-                  <el-form-item>
-                    <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
-                    <el-button v-auth="'api:admin:file:upload-file'" type="primary" icon="ele-Upload" @click="onUpload"> 上传 </el-button>
-                  </el-form-item>
-                </el-col>
-              </el-form-item>
-            </el-form>
-          </el-card>
-        </el-col>
-        <!--表格-->
-        <el-col :xs="24" >
-          <el-card class="my-fill mt8" shadow="hover">
-            <el-table v-loading="bomModel.loading" :data="bomModel.bomListData" row-key="id" style="width: 100%">
-              <el-table-column prop="guid" label="序号"  />
-              <el-table-column prop="bomName" label="部件名称"  />
-              <el-table-column prop="bomNo" label="物料号"  />
-              <el-table-column prop="bomProNo" label="生产编号"  />
-              <el-table-column prop="cpuId" label="CPUID"  />
-              <el-table-column prop="software_v" label="软件版本"  />
-              <el-table-column prop="status" label="状态" width="120" />
-              <el-table-column prop="key_name" label="密钥状态"  />
-              <el-table-column prop="stand_name" label="团标状态" />
-              <el-table-column prop="createTime" label="创建时间"  />
-              <el-table-column prop="remark" label="备注" >
-                <!-- <template #default="{ row }">
-                  <div class="my-flex">
-                    <el-image
-                      v-if="isImage(row.extension)"
-                      :src="row.linkUrl"
-                      :preview-src-list="previewImglist"
-                      :initial-index="getInitialIndex(row.linkUrl)"
-                      :lazy="true"
-                      :hide-on-click-modal="true"
-                      fit="scale-down"
-                      preview-teleported
-                      style="width: 80px; height: 80px"
-                    />
-                    <div class="ml10 my-flex-fill my-flex-y-center">
-                      <div>{{ (row.fileName || '') + (row.extension || '') }}</div>
-                    </div>
+  <div class="layout-pd">
+    <!--部件电子档案-->
+    <el-row>
+      <!--操作-->
+      <el-col :xs="24" >
+        <el-card class="mt8" shadow="hover" >
+          <el-form :model="bomModel.filterModel" :inline="true" @submit.stop.prevent>
+            <el-form-item class="form_item" prop="name" style="width:100%">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item label="物料号">
+                  <el-input v-model="bomModel.filterModel.bomMateNo" placeholder="物料号" clearable></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item label="生产编码">
+                  <el-input v-model="bomModel.filterModel.bomProNo" placeholder="生产编码" clearable></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item label="部件名称">
+                  <el-input v-model="bomModel.filterModel.bomName" placeholder="部件名称" clearable></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item label="部件类型">
+                  <el-select v-model="bomModel.filterModel.bomType" placeholder="请选择部件类型" clearable class="w100">
+                    <el-option label="计税主板" value="1"></el-option>
+                    <el-option label="油气回收" value="2"></el-option>
+                    <el-option label="计量主板" value="3"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item>
+                  <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
+                  <el-button v-auth="'api:admin:file:upload-file'" type="primary" icon="ele-Upload" @click="onUpload"> 上传 </el-button>
+                </el-form-item>
+              </el-col>
+            </el-form-item>
+          </el-form>
+        </el-card>
+      </el-col>
+      <!--表格-->
+      <el-col :xs="24">
+        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+          <el-table v-loading="bomModel.loading" :data="bomModel.bomListData" row-key="id" style="width: 100%">
+            <el-table-column prop="guid" label="序号"  />
+            <el-table-column prop="bomName" label="部件名称"  />
+            <el-table-column prop="bomNo" label="物料号"  />
+            <el-table-column prop="bomProNo" label="生产编号"  />
+            <el-table-column prop="cpuId" label="CPUID"  />
+            <el-table-column prop="software_v" label="软件版本"  />
+            <el-table-column prop="status" label="状态" width="120" />
+            <el-table-column prop="key_name" label="密钥状态"  />
+            <el-table-column prop="stand_name" label="团标状态" />
+            <el-table-column prop="createTime" label="创建时间"  />
+            <el-table-column prop="remark" label="备注" >
+              <!-- <template #default="{ row }">
+                <div class="my-flex">
+                  <el-image
+                    v-if="isImage(row.extension)"
+                    :src="row.linkUrl"
+                    :preview-src-list="previewImglist"
+                    :initial-index="getInitialIndex(row.linkUrl)"
+                    :lazy="true"
+                    :hide-on-click-modal="true"
+                    fit="scale-down"
+                    preview-teleported
+                    style="width: 80px; height: 80px"
+                  />
+                  <div class="ml10 my-flex-fill my-flex-y-center">
+                    <div>{{ (row.fileName || '') + (row.extension || '') }}</div>
                   </div>
-                </template> -->
-              </el-table-column>
-
-              <el-table-column prop="createdTime" label="更新时间" >
-                <template #default="{ row }">
-                  {{ formatterTime(row.modifiedTime || row.createdTime || '') }}
-                </template>
-              </el-table-column>
-              <el-table-column label="操作"  fixed="right" header-align="center" align="center">
-                <template #default="{ row }">
-                  <!-- <el-popover :width="220">
-                    <p>{{ row.linkUrl }}</p>
-                    <div class="mt10" style="text-align: right; margin: 0">
-                      <el-button icon="ele-CopyDocument" size="small" type="primary" @click="copyText(row.linkUrl)">复制地址</el-button>
-                    </div>
-                    <template #reference>
-                      <el-button size="small" text type="primary">地址</el-button>
-                    </template>
-                  </el-popover>
-                  <el-link
-                    class="my-el-link mr12 ml12"
-                    :href="row.linkUrl"
-                    type="primary"
-                    icon="ele-Download"
-                    size="small"
-                    :underline="false"
-                    target="_blank"
-                    >下载</el-link
-                  >
-                  <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}`)"
-                    type="primary"
-                    icon="ele-edit"
-                    size="small"
-                    :underline="false"
-                    target="_blank"
-                  >详情</el-link>
-                </template>
-              </el-table-column>
-            </el-table>
-            <div class="my-flex my-flex-end" style="margin-top: 20px">
-              <el-pagination
-                v-model:currentPage="bomModel.pageInput.currentPage"
-                v-model:page-size="bomModel.pageInput.pageSize"
-                :total="bomModel.total"
-                :page-sizes="[10, 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 lang="ts" setup name="admin/Component">
-  import { ref, reactive, onMounted, onBeforeMount} from 'vue'  //computed, getCurrentInstance
-  import { PageInputFileGetPageDto, ComponentGetPageOutPut } from '/src/api/admin/data-contracts'
-  import { ComponentApi } from '/@/api/admin/productionManagement/Component'
-  import dayjs from 'dayjs'
-  import eventBus from '/src/utils/mitt'
-  //import { isImage } from '/@/utils/test'
-  //import commonFunction from '/@/utils/commonFunction'
-
-  //const { proxy } = getCurrentInstance() as any
-
-
-
-  const fileUploadRef = ref()
-
-  //部件的页面对象
-  const bomModel = reactive({
-    loading: false,
-    fileFormTitle: '',
-    filterModel: {
-      fileName: '',
-      bomType: '',
-      bomName: '',
-      bomProNo: '',
-      bomMateNo: '',
-    },
-    total: 0,
-    pageInput: {
-      currentPage: 1,
-      pageSize: 20,
-    } as PageInputFileGetPageDto,
-    bomListData: [] as Array<ComponentGetPageOutPut>,
-    bomLogsTitle: '',
-  })
-
-  //const { copyText } = commonFunction()
-
-  //const previewImglist = computed(() => {
-    //let imgList = [] as string[]
-    //bomModel.bomListData.forEach((a) => {
-
-    //})
-   // return imgList
-  //})
-
-  onMounted(() => {
+                </div>
+              </template> -->
+            </el-table-column>
+
+            <el-table-column prop="createdTime" label="更新时间" >
+              <template #default="{ row }">
+                {{ formatterTime(row.modifiedTime || row.createdTime || '') }}
+              </template>
+            </el-table-column>
+            <el-table-column label="操作"  fixed="right" header-align="center" align="center">
+              <template #default="{ row }">
+                <!-- <el-popover :width="220">
+                  <p>{{ row.linkUrl }}</p>
+                  <div class="mt10" style="text-align: right; margin: 0">
+                    <el-button icon="ele-CopyDocument" size="small" type="primary" @click="copyText(row.linkUrl)">复制地址</el-button>
+                  </div>
+                  <template #reference>
+                    <el-button size="small" text type="primary">地址</el-button>
+                  </template>
+                </el-popover>
+                <el-link
+                  class="my-el-link mr12 ml12"
+                  :href="row.linkUrl"
+                  type="primary"
+                  icon="ele-Download"
+                  size="small"
+                  :underline="false"
+                  target="_blank"
+                  >下载</el-link
+                >
+                <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}`)"
+                  type="primary"
+                  icon="ele-edit"
+                  size="small"
+                  :underline="false"
+                  target="_blank"
+                >详情</el-link>
+              </template>
+            </el-table-column>
+          </el-table>
+          <div class="my-flex my-flex-end" style="margin-top: 20px">
+            <el-pagination
+              v-model:currentPage="bomModel.pageInput.currentPage"
+              v-model:page-size="bomModel.pageInput.pageSize"
+              :total="bomModel.total"
+              :page-sizes="[10, 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 lang="ts" setup name="admin/Component">
+import { ref, reactive, onMounted, onBeforeMount} from 'vue'  //computed, getCurrentInstance
+import { ComponentApi } from '/@/api/admin/productionManagement/Component'
+import dayjs from 'dayjs'
+import eventBus from '/@/utils/mitt'
+import {PageInputFileGetPageDto} from "/@/api/admin/productionManagement/ComopnentDto";
+import {ComponentGetPageOutPut} from "/@/api/admin/productionManagement/CommunalDto";
+//import { isImage } from '/@/utils/test'
+//import commonFunction from '/@/utils/commonFunction'
+
+//const { proxy } = getCurrentInstance() as any
+
+
+
+const fileUploadRef = ref()
+
+//部件的页面对象
+const bomModel = reactive({
+  loading: false,
+  fileFormTitle: '',
+  filterModel: {
+    fileName: '',
+    bomType: '',
+    bomName: '',
+    bomProNo: '',
+    bomMateNo: '',
+  },
+  total: 0,
+  pageInput: {
+    currentPage: 1,
+    pageSize: 20,
+  } as PageInputFileGetPageDto,
+  bomListData: [] as Array<ComponentGetPageOutPut>,
+  bomLogsTitle: '',
+})
+
+//const { copyText } = commonFunction()
+
+//const previewImglist = computed(() => {
+//let imgList = [] as string[]
+//bomModel.bomListData.forEach((a) => {
+
+//})
+// return imgList
+//})
+
+onMounted(() => {
+  onQuery()
+  eventBus.off('refreshFile')
+  eventBus.on('refreshFile', async () => {
     onQuery()
-    eventBus.off('refreshFile')
-    eventBus.on('refreshFile', async () => {
-      onQuery()
-    })
   })
+})
 
-  onBeforeMount(() => {
-    eventBus.off('refreshFile')
-  })
+onBeforeMount(() => {
+  eventBus.off('refreshFile')
+})
 
-  const formatterTime = (cellValue: any) => {
-    return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss')
-  }
-
-  //const getInitialIndex = (imgUrl: string) => {
-    //return previewImglist.value.indexOf(imgUrl)
-  //}
-
-  const onQuery = async () => {
-    bomModel.loading = true
-    const res = await new ComponentApi().getPage({ ...bomModel.pageInput, filter: bomModel.filterModel }).catch(() => {
-        bomModel.loading = false
-    })
-    console.log(res)
-    bomModel.bomListData = res?.data?.list ?? []
-    bomModel.total = res?.data?.total ?? 0
-    bomModel.loading = false
-  }
+const formatterTime = (cellValue: any) => {
+  return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss')
+}
 
-  const onSizeChange = (val: number) => {
-    bomModel.pageInput.pageSize = val
-    onQuery()
-  }
+//const getInitialIndex = (imgUrl: string) => {
+//return previewImglist.value.indexOf(imgUrl)
+//}
 
-  const onCurrentChange = (val: number) => {
-    bomModel.pageInput.currentPage = val
-    onQuery()
-  }
-
-  const onUpload = () => {
-    fileUploadRef.value.open()
-  }
-
-  //const onDelete = (row: FileGetPageOutput) => {
-    //proxy.$modal
-      //.confirmDelete(`确定要删除文件【${row.fileName}${row.extension}】?`)
-      //.then(async () => {
-        //await new BomApi().delete({ id: row.id as number }, { loading: true, showSuccessMessage: true })
-       // onQuery()
-    //  })
-    //  .catch(() => {})
- // }
-  </script>
-
-  <style scoped lang="scss">
-  .my-el-link {
-    font-size: 12px;
-  }
-  .el-form .el-col.mb20 {
-    margin: 0 !important;
-  }
-  </style>
+const onQuery = async () => {
+  bomModel.loading = true
+  const res = await new ComponentApi().getPage({ ...bomModel.pageInput, filter: bomModel.filterModel }).catch(() => {
+    bomModel.loading = false
+  })
+  console.log(res)
+  bomModel.bomListData = res?.data?.list ?? []
+  bomModel.total = res?.data?.total ?? 0
+  bomModel.loading = false
+}
+
+const onSizeChange = (val: number) => {
+  bomModel.pageInput.pageSize = val
+  onQuery()
+}
+
+const onCurrentChange = (val: number) => {
+  bomModel.pageInput.currentPage = val
+  onQuery()
+}
+
+const onUpload = () => {
+  fileUploadRef.value.open()
+}
+
+//const onDelete = (row: FileGetPageOutput) => {
+//proxy.$modal
+//.confirmDelete(`确定要删除文件【${row.fileName}${row.extension}】?`)
+//.then(async () => {
+//await new BomApi().delete({ id: row.id as number }, { loading: true, showSuccessMessage: true })
+// onQuery()
+//  })
+//  .catch(() => {})
+// }
+</script>
+
+<style scoped lang="scss">
+.my-el-link {
+  font-size: 12px;
+}
+.el-form .el-col.mb20 {
+  margin: 0 !important;
+}
+</style>

+ 140 - 139
admin.ui.plus-master/src/views/admin/product/type.vue

@@ -1,141 +1,142 @@
 <template>
-    <div class="layout-pd">
-      <!--部件类型-->
-      <el-row>
-        <!--操作-->
-        <el-col :xs="24" >
-          <el-card class="mt8" shadow="hover" >
-            <el-form :model="state.filterModel" :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="物料编号">
-                    <el-input v-model="state.filterModel.bomMateNo" placeholder="物料编号" clearable></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-                  <el-form-item label="部件名称">
-                    <el-input v-model="state.filterModel.bomName" placeholder="部件名称" clearable></el-input>
-                  </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 v-model="state.filterModel.bomType" placeholder="请选择部件类型" clearable class="w100">
-                      <el-option label="计税主板" value="1"></el-option>
-                      <el-option label="油气回收" value="2"></el-option>
-                      <el-option label="计量主板" value="3"></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>
-                    <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
-                    <el-button v-auth="'api:admin:file:upload-file'" type="primary" icon="ele-Upload" @click="onUpload"> 上传 </el-button>
-                  </el-form-item>
-                </el-col>
-              </el-form-item>
-            </el-form>
-          </el-card>
-        </el-col>
-        <!--表格-->
-        <el-col :xs="24" >
-          <el-card class="my-fill mt8" shadow="hover">
-            <el-table v-loading="state.loading" :data="state.bomListData" row-key="id" style="width: 100%">
-              <el-table-column prop="guid" label="序号"  />
-              <el-table-column prop="bomType" label="部件类型"  />
-              <el-table-column prop="bomName" label="部件名称"  />
-              <el-table-column prop="bomNo" label="物料号"  />
-              <el-table-column prop="status" label="状态"  />
-              <el-table-column prop="remark" label="备注" />
-              <el-table-column prop="bom_Image" label="部件图片"  >
-
-                <template #default="{ row }">
-                  <div class="my-flex">
-                    <el-image
-                      v-if="isImage(row.extension)"
-                      :src="row.linkUrl"
-                      :preview-src-list="previewImglist"
-                      :initial-index="getInitialIndex(row.linkUrl)"
-                      :lazy="true"
-                      :hide-on-click-modal="true"
-                      fit="scale-down"
-                      preview-teleported
-                      style="width: 80px; height: 80px"
-                    />
-                    <div class="ml10 my-flex-fill my-flex-y-center">
-                      <div>{{ (row.fileName || '') + (row.extension || '') }}</div>
-                    </div>
+  <div class="layout-pd">
+    <!--部件类型-->
+    <el-row>
+      <!--操作-->
+      <el-col :xs="24" >
+        <el-card class="mt8" shadow="hover" >
+          <el-form :model="state.filterModel" :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="物料编号">
+                  <el-input v-model="state.filterModel.bomMateNo" placeholder="物料编号" clearable></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                <el-form-item label="部件名称">
+                  <el-input v-model="state.filterModel.bomName" placeholder="部件名称" clearable></el-input>
+                </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 v-model="state.filterModel.bomType" placeholder="请选择部件类型" clearable class="w100">
+                    <el-option label="计税主板" value="1"></el-option>
+                    <el-option label="油气回收" value="2"></el-option>
+                    <el-option label="计量主板" value="3"></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>
+                  <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
+                  <el-button v-auth="'api:admin:file:upload-file'" type="primary" icon="ele-Upload" @click="onUpload"> 上传 </el-button>
+                </el-form-item>
+              </el-col>
+            </el-form-item>
+          </el-form>
+        </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" :data="state.bomListData" row-key="id" style="width: 100%">
+            <el-table-column prop="guid" label="序号"  />
+            <el-table-column prop="bomType" label="部件类型"  />
+            <el-table-column prop="bomName" label="部件名称"  />
+            <el-table-column prop="bomNo" label="物料号"  />
+            <el-table-column prop="status" label="状态"  />
+            <el-table-column prop="remark" label="备注" />
+            <el-table-column prop="bom_Image" label="部件图片"  >
+
+              <template #default="{ row }">
+                <div class="my-flex">
+                  <el-image
+                    v-if="isImage(row.extension)"
+                    :src="row.linkUrl"
+                    :preview-src-list="previewImglist"
+                    :initial-index="getInitialIndex(row.linkUrl)"
+                    :lazy="true"
+                    :hide-on-click-modal="true"
+                    fit="scale-down"
+                    preview-teleported
+                    style="width: 80px; height: 80px"
+                  />
+                  <div class="ml10 my-flex-fill my-flex-y-center">
+                    <div>{{ (row.fileName || '') + (row.extension || '') }}</div>
                   </div>
-                </template>
-              </el-table-column>
-
-              <el-table-column prop="createdTime" label="更新时间" >
-                <template #default="{ row }">
-                  {{ formatterTime(row.modifiedTime || row.createdTime || '') }}
-                </template>
-              </el-table-column>
-              <el-table-column label="操作"  fixed="right" header-align="center" align="center">
-                <template #default="{ row }">
-                  <!-- <el-popover :width="220">
-                    <p>{{ row.linkUrl }}</p>
-                    <div class="mt10" style="text-align: right; margin: 0">
-                      <el-button icon="ele-CopyDocument" size="small" type="primary" @click="copyText(row.linkUrl)">复制地址</el-button>
-                    </div>
-                    <template #reference>
-                      <el-button size="small" text type="primary">地址</el-button>
-                    </template>
-                  </el-popover>
-                  <el-link
-                    class="my-el-link mr12 ml12"
-                    :href="row.linkUrl"
-                    type="primary"
-                    icon="ele-Download"
-                    size="small"
-                    :underline="false"
-                    target="_blank"
-                    >下载</el-link
-                  >
-                  <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}`)"
-                    type="primary"
-                    icon="ele-edit"
-                    size="small"
-                    :underline="false"
-                    target="_blank"
-                  >详情</el-link>
-                </template>
-              </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, 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>
+                </div>
+              </template>
+            </el-table-column>
+
+            <el-table-column prop="createdTime" label="更新时间" >
+              <template #default="{ row }">
+                {{ formatterTime(row.modifiedTime || row.createdTime || '') }}
+              </template>
+            </el-table-column>
+            <el-table-column label="操作"  fixed="right" header-align="center" align="center">
+              <template #default="{ row }">
+                <!-- <el-popover :width="220">
+                  <p>{{ row.linkUrl }}</p>
+                  <div class="mt10" style="text-align: right; margin: 0">
+                    <el-button icon="ele-CopyDocument" size="small" type="primary" @click="copyText(row.linkUrl)">复制地址</el-button>
+                  </div>
+                  <template #reference>
+                    <el-button size="small" text type="primary">地址</el-button>
+                  </template>
+                </el-popover>
+                <el-link
+                  class="my-el-link mr12 ml12"
+                  :href="row.linkUrl"
+                  type="primary"
+                  icon="ele-Download"
+                  size="small"
+                  :underline="false"
+                  target="_blank"
+                  >下载</el-link
+                >
+                <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}`)"
+                  type="primary"
+                  icon="ele-edit"
+                  size="small"
+                  :underline="false"
+                  target="_blank"
+                >详情</el-link>
+              </template>
+            </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, 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 lang="ts" setup name="admin/product/bom">
 import { ref, reactive, onMounted, onBeforeMount, computed } from 'vue'
-import { PageInputFileGetPageDto, FileGetPageOutput } from '/src/api/admin/data-contracts'
 import { ComponentTypeApi } from '/@/api/admin/productionManagement/ComponentType'
 import dayjs from 'dayjs'
-import eventBus from '/src/utils/mitt'
-import { isImage } from '/src/utils/test'
+import eventBus from '/@/utils/mitt'
+import { isImage } from '/@/utils/test'
+import {PageInputFileGetPageDto} from "/@/api/admin/productionManagement/ComopnentDto";
+import {FileGetPageOutput} from "/@/api/admin/data-contracts";
 //import commonFunction from '/@/utils/commonFunction'
 
 // const { proxy } = getCurrentInstance() as any
@@ -199,7 +200,7 @@ const getInitialIndex = (imgUrl: string) => {
 const onQuery = async () => {
   state.loading = true
   const res = await new ComponentTypeApi().getPage({ ...state.pageInput, filter: state.filterModel }).catch(() => {
-      state.loading = false
+    state.loading = false
   })
 
   state.bomListData = res?.data?.list ?? []
@@ -222,13 +223,13 @@ const onUpload = () => {
 }
 
 //const onDelete = (row: FileGetPageOutput) => {
- // proxy.$modal
-    //.confirmDelete(`确定要删除文件【${row.fileName}${row.extension}】?`)
-    //.then(async () => {
-    //  await new BomApi().delete({ id: row.id as number }, { loading: true, showSuccessMessage: true })
-     // onQuery()
-  //  })
-   // .catch(() => {})
+// proxy.$modal
+//.confirmDelete(`确定要删除文件【${row.fileName}${row.extension}】?`)
+//.then(async () => {
+//  await new BomApi().delete({ id: row.id as number }, { loading: true, showSuccessMessage: true })
+// onQuery()
+//  })
+// .catch(() => {})
 // }
 </script>