Sfoglia il codice sorgente

pms 设备BOM 关闭抽屉后刷新

zhangcl 2 mesi fa
parent
commit
d239121899

+ 52 - 48
src/api/pms/iotdevicematerial/index.ts

@@ -1,48 +1,52 @@
-import request from '@/config/axios'
-
-// PMS 设备BOM物料关联 VO
-export interface IotDeviceMaterialVO {
-  id: number // 主键
-  deviceCategoryId: number // 所属设备分类
-  deviceId: number // 所属设备
-  name: string // 设备BOM节点名称
-  bomNodeId: number // 设备BOM节点id
-  code: string // 设备BOM节点编码
-  materialId: number // 物料id
-  quantity: number // 数量
-  status: number // 状态 0启用  1停用
-  remark: string // 备注
-}
-
-// PMS 设备BOM物料关联 API
-export const IotDeviceMaterialApi = {
-  // 查询PMS 设备BOM物料关联分页
-  getIotDeviceMaterialPage: async (params: any) => {
-    return await request.get({ url: `/pms/iot-device-material/page`, params })
-  },
-
-  // 查询PMS 设备BOM物料关联详情
-  getIotDeviceMaterial: async (id: number) => {
-    return await request.get({ url: `/pms/iot-device-material/get?id=` + id })
-  },
-
-  // 新增PMS 设备BOM物料关联
-  createIotDeviceMaterial: async (data: IotDeviceMaterialVO) => {
-    return await request.post({ url: `/pms/iot-device-material/create`, data })
-  },
-
-  // 修改PMS 设备BOM物料关联
-  updateIotDeviceMaterial: async (data: IotDeviceMaterialVO) => {
-    return await request.put({ url: `/pms/iot-device-material/update`, data })
-  },
-
-  // 删除PMS 设备BOM物料关联
-  deleteIotDeviceMaterial: async (id: number) => {
-    return await request.delete({ url: `/pms/iot-device-material/delete?id=` + id })
-  },
-
-  // 导出PMS 设备BOM物料关联 Excel
-  exportIotDeviceMaterial: async (params) => {
-    return await request.download({ url: `/pms/iot-device-material/export-excel`, params })
-  },
-}
+import request from '@/config/axios'
+
+// PMS 设备BOM物料关联 VO
+export interface IotDeviceMaterialVO {
+  id: number // 主键
+  deviceCategoryId: number // 所属设备分类
+  deviceId: number // 所属设备
+  name: string // 设备BOM节点名称
+  bomNodeId: number // 设备BOM节点id
+  code: string // 设备BOM节点编码
+  materialId: number // 物料id
+  quantity: number // 数量
+  status: number // 状态 0启用  1停用
+  remark: string // 备注
+}
+
+// PMS 设备BOM物料关联 API
+export const IotDeviceMaterialApi = {
+  // 查询PMS 设备BOM物料关联分页
+  getIotDeviceMaterialPage: async (params: any) => {
+    return await request.get({ url: `/pms/iot-device-material/page`, params })
+  },
+
+  // 查询PMS 设备BOM物料关联详情
+  getIotDeviceMaterial: async (id: number) => {
+    return await request.get({ url: `/pms/iot-device-material/get?id=` + id })
+  },
+
+  // 新增PMS 设备BOM物料关联
+  createIotDeviceMaterial: async (data: IotDeviceMaterialVO) => {
+    return await request.post({ url: `/pms/iot-device-material/create`, data })
+  },
+
+  // 修改PMS 设备BOM物料关联
+  updateIotDeviceMaterial: async (data: IotDeviceMaterialVO) => {
+    return await request.put({ url: `/pms/iot-device-material/update`, data })
+  },
+
+  // 删除PMS 设备BOM物料关联
+  deleteIotDeviceMaterial: async (id: number) => {
+    return await request.delete({ url: `/pms/iot-device-material/delete?id=` + id })
+  },
+
+  // 导出PMS 设备BOM物料关联 Excel
+  exportIotDeviceMaterial: async (params) => {
+    return await request.download({ url: `/pms/iot-device-material/export-excel`, params })
+  },
+
+  deleteDeviceMaterial: async (bomNodeId: number, code: string) => {
+    return await request.delete({ url: '/pms/iot-device-material/deleteDeviceMaterial?bomNodeId=' + bomNodeId + '&code=' + code })
+  }
+}

+ 20 - 3
src/views/pms/device/MaterialListDrawerDevice.vue

@@ -25,7 +25,7 @@
           />
           <el-table-column :label="t('maintain.operation')" align="right">
             <template #default="scope">
-              <el-button size="small" type="danger" @click="emit('delete', scope.row)"
+              <el-button size="small" type="danger" @click="handleDelete(scope.row)"
                 >{{ t('info.delete') }}</el-button
               >
             </template>
@@ -49,16 +49,19 @@ import * as DeviceMaterialApi from '@/api/pms/iotdevicematerial'
 import { dateFormatter } from '@/utils/formatTime'
 const { t } = useI18n() // 国际化
 const drawerVisible = ref<boolean>(false)
-const emit = defineEmits(['update:modelValue', 'add', 'delete'])
+const emit = defineEmits(['update:modelValue', 'add', 'delete', 'refresh'])
+
+const message = useMessage() // 消息弹窗
 
 defineOptions({
-  name: 'MaterialListDrawer'
+  name: 'DeviceMaterialListDrawer'
 })
 
 const queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   createTime: [],
+  deviceId: undefined,
   bomNodeId: '',
   name: '',
   code: ''
@@ -118,9 +121,23 @@ const closeDrawer = () => {
   drawerVisible.value = false
 }
 
+/** 删除设备BOM节点已经挂载的物料 */
+const handleDelete = async (row) => {
+  try {
+    // 删除的二次确认
+    await message.delConfirm()
+    // 发起删除
+    await DeviceMaterialApi.IotDeviceMaterialApi.deleteDeviceMaterial(props.nodeId, row.code)
+    message.success(t('common.delSuccess'))
+    // 刷新列表
+    loadMaterials(props.nodeId)
+  } catch {}
+}
+
 // 关闭抽屉
 const handleClose = () => {
   emit('update:modelValue', false)
+  emit('refresh') // 添加刷新事件
   materials.value = []
 }
 

+ 6 - 0
src/views/pms/device/bom/BomList.vue

@@ -163,6 +163,7 @@
     :node-id="currentBomNodeId"
     :deviceId = "props.deviceId"
     ref="showDrawer"
+    @refresh="handleDrawerClosed"
   />
 </template>
 <script lang="ts" setup>
@@ -291,6 +292,11 @@ const resetQuery = () => {
 //   await getList()
 // }
 
+// 添加处理抽屉关闭的方法
+const handleDrawerClosed = () => {
+  getList() // 刷新BOM树数据
+}
+
 /** 添加/修改操作 */
 const formRef = ref()
 const openForm = (type: string, row) => {