From 25174b415e38131652ce5e3c1acf03e0283642fa Mon Sep 17 00:00:00 2001
From: kkk-ops <1050738955@qq.com>
Date: Sat, 7 Feb 2026 08:49:51 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E6=A8=A1=E5=85=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/erp/mold/index.ts | 4 +
src/api/iot/device/index.ts | 7 +-
src/api/mes/deviceledger/index.ts | 4 +
src/views/erp/mold/MoldBrandForm.vue | 1 +
src/views/erp/mold/components/MoldForm.vue | 1 +
src/views/erp/mold/index.vue | 17 +-
src/views/erp/moldlist/index.vue | 6 +-
.../mes/deviceledger/DeviceLedgerForm.vue | 6 +-
.../moldget/components/StockOutItemForm.vue | 5 +-
src/views/mes/moldoperate/MoldOperateForm.vue | 4 +-
src/views/mes/moldreturn/MoldReturnForm.vue | 52 +-
.../moldreturn/components/StockInItemForm.vue | 522 ++++++++++--------
src/views/mes/moldreturn/index.vue | 3 +-
.../mes/organization/OrganizationForm.vue | 10 +-
14 files changed, 363 insertions(+), 279 deletions(-)
diff --git a/src/api/erp/mold/index.ts b/src/api/erp/mold/index.ts
index a3554fdb..5089ba0f 100644
--- a/src/api/erp/mold/index.ts
+++ b/src/api/erp/mold/index.ts
@@ -125,6 +125,10 @@ export const MoldBrandApi = {
getMold: async (id: number) => {
return await request.get({ url: `/erp/mold-brand/mold/get?id=` + id })
},
+ // 根据状态获得模具
+ getMoldListByStatus: async (status: number) => {
+ return await request.get({ url: `/erp/mold/getMoldListByStatus?status=` + status })
+ },
// ==================== 子表(模具产品) ====================
diff --git a/src/api/iot/device/index.ts b/src/api/iot/device/index.ts
index 339a517e..3e112e92 100644
--- a/src/api/iot/device/index.ts
+++ b/src/api/iot/device/index.ts
@@ -91,7 +91,12 @@ export const DeviceApi = {
getDevice: async (id: number) => {
return await request.get({ url: `/iot/device/get?id=` + id })
},
-
+ getDeviceListByNoUsed: async () => {
+ return await request.get({ url: `/iot/device/noUsedlist` })
+ },
+ getDeviceList2ByNoUsed: async (id: number) => {
+ return await request.get({ url: `/iot/device/noUsedlist2?id=` + id })
+ },
// 新增物联设备
createDevice: async (data: DeviceVO) => {
return await request.post({ url: `/iot/device/create`, data })
diff --git a/src/api/mes/deviceledger/index.ts b/src/api/mes/deviceledger/index.ts
index ad15f090..12ecc1b0 100644
--- a/src/api/mes/deviceledger/index.ts
+++ b/src/api/mes/deviceledger/index.ts
@@ -54,6 +54,10 @@ export const DeviceLedgerApi = {
return await request.get({ url: `/mes/device-ledger/noUsedlist` })
},
+ getDeviceLedgerList2ByNoUsed: async (id: number) => {
+ return await request.get({ url: `/mes/device-ledger/noUsedlist2?id=` + id })
+ },
+
// 查询设备类型详情
getDeviceLedger: async (id: number) => {
return await request.get({ url: `/mes/device-ledger/get?id=` + id })
diff --git a/src/views/erp/mold/MoldBrandForm.vue b/src/views/erp/mold/MoldBrandForm.vue
index 2ec68eb1..c1e3f39d 100644
--- a/src/views/erp/mold/MoldBrandForm.vue
+++ b/src/views/erp/mold/MoldBrandForm.vue
@@ -86,6 +86,7 @@
diff --git a/src/views/erp/mold/components/MoldForm.vue b/src/views/erp/mold/components/MoldForm.vue
index 9686bb23..4865cb98 100644
--- a/src/views/erp/mold/components/MoldForm.vue
+++ b/src/views/erp/mold/components/MoldForm.vue
@@ -78,6 +78,7 @@
diff --git a/src/views/erp/mold/index.vue b/src/views/erp/mold/index.vue
index 5ecddf17..4fbd9881 100644
--- a/src/views/erp/mold/index.vue
+++ b/src/views/erp/mold/index.vue
@@ -6,7 +6,7 @@
:model="queryParams"
ref="queryFormRef"
:inline="true"
- label-width="110px"
+ label-width="68px"
>
-
+
@@ -112,7 +112,6 @@
-->
-
-
+
-
-
-
+
+
+
+
diff --git a/src/views/mes/moldreturn/index.vue b/src/views/mes/moldreturn/index.vue
index c8dc68ae..d0bc769d 100644
--- a/src/views/mes/moldreturn/index.vue
+++ b/src/views/mes/moldreturn/index.vue
@@ -1,5 +1,4 @@
-
{
}
}
await getOrganizationTree()
- await getMachineComponentTree()
-
+ if (type == 'create' || typeof formData.value.machineId != 'number') {
+ deviceList.value = await DeviceLedgerApi.getDeviceLedgerListByNoUsed()
+ } else {
+ deviceList.value = await DeviceLedgerApi.getDeviceLedgerList2ByNoUsed(formData.value.machineId)
+ }
+ //await getMachineComponentTree()
}
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
@@ -255,6 +259,6 @@ const getMachineComponentTree = async () => {
/** 初始化 **/
onMounted(async () => {
//console.log("ssss")
- deviceList.value = await DeviceLedgerApi.getDeviceLedgerList()
+ //deviceList.value = await DeviceLedgerApi.getDeviceLedgerListByNoUsed()
})
From 3c844c5fd431d244a41129cf64b4858ca74b6526 Mon Sep 17 00:00:00 2001
From: kkk-ops <1050738955@qq.com>
Date: Mon, 9 Feb 2026 09:51:08 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E7=BB=84=E7=BB=87-=E9=87=87=E9=9B=86?=
=?UTF-8?q?=E8=AE=BE=E5=A4=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/mes/organization/index.ts | 1 +
src/locales/en.ts | 1 +
src/locales/zh-CN.ts | 1 +
src/views/erp/moldlist/index.vue | 21 +-
.../mes/deviceledger/DeviceLedgerForm.vue | 5 +-
src/views/mes/moldget/MoldGetForm.vue | 47 +-
.../moldget/components/StockOutItemForm.vue | 522 +++++++++---------
src/views/mes/moldget/index.vue | 7 +-
src/views/mes/moldreturn/MoldReturnForm.vue | 37 +-
.../moldreturn/components/StockInItemForm.vue | 38 +-
src/views/mes/moldreturn/index.vue | 5 +-
.../mes/organization/OrganizationForm.vue | 21 +-
12 files changed, 389 insertions(+), 317 deletions(-)
diff --git a/src/api/mes/organization/index.ts b/src/api/mes/organization/index.ts
index 55aeb120..e61cf229 100644
--- a/src/api/mes/organization/index.ts
+++ b/src/api/mes/organization/index.ts
@@ -14,6 +14,7 @@ export interface OrganizationVO {
status: string // 组织状态
orgClass: string // 组织等级
orgType: string // 组织类型
+ dvId: number
}
export type DeviceParameterAnalysisNodeVO = {
diff --git a/src/locales/en.ts b/src/locales/en.ts
index de9490ac..4004f79b 100644
--- a/src/locales/en.ts
+++ b/src/locales/en.ts
@@ -1916,6 +1916,7 @@ export default {
placeholderUnit: 'Please select unit',
placeholderInTime: 'Select stock in time',
placeholderRemark: 'Please input remark',
+ placeholderStatus: 'Please select status',
validatorCodeRequired: 'Mold code can not be empty',
validatorNameRequired: 'Mold name can not be empty',
validatorUnitRequired: 'Unit can not be empty',
diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts
index 32033b45..4a7b3e08 100644
--- a/src/locales/zh-CN.ts
+++ b/src/locales/zh-CN.ts
@@ -1499,6 +1499,7 @@ export default {
placeholderUnit: '请选择单位',
placeholderInTime: '选择入库时间',
placeholderRemark: '请输入备注',
+ placeholderStatus: '请选择状态',
validatorCodeRequired: '模具编码不能为空',
validatorNameRequired: '模具名称不能为空',
validatorUnitRequired: '单位不能为空',
diff --git a/src/views/erp/moldlist/index.vue b/src/views/erp/moldlist/index.vue
index 35ecc03a..86ea7df1 100644
--- a/src/views/erp/moldlist/index.vue
+++ b/src/views/erp/moldlist/index.vue
@@ -19,6 +19,21 @@ v-model="queryParams.code" :placeholder="t('MoldManagement.Mold.code')" clearabl
v-model="queryParams.name" :placeholder="t('MoldManagement.Mold.name')" clearable @keyup.enter="handleQuery"
class="!w-240px" />
+
+
+
+
+
{{ t('common.query') }}
@@ -95,7 +110,6 @@ type="success" plain @click="handleExport" :loading="exportLoading"
-/** 删除按钮操作 */
-const handleDelete = (index) => {
- formData.value.splice(index, 1)
+
diff --git a/src/views/mes/moldget/index.vue b/src/views/mes/moldget/index.vue
index e76d7788..1ed2116e 100644
--- a/src/views/mes/moldget/index.vue
+++ b/src/views/mes/moldget/index.vue
@@ -212,7 +212,7 @@
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['erp:stock-out:update']"
- :disabled="scope.row.status === 20"
+ v-if="scope.row.status === 10"
>
{{ t('MoldManagement.MoldGet.edit') }}
@@ -225,7 +225,7 @@
>
{{ t('MoldManagement.MoldGet.approve') }}
-
{{ t('MoldManagement.MoldGet.unapprove') }}
-
+ -->
{{ t('MoldManagement.MoldGet.delete') }}
diff --git a/src/views/mes/moldreturn/MoldReturnForm.vue b/src/views/mes/moldreturn/MoldReturnForm.vue
index 3727e7e9..1e440e8e 100644
--- a/src/views/mes/moldreturn/MoldReturnForm.vue
+++ b/src/views/mes/moldreturn/MoldReturnForm.vue
@@ -37,24 +37,6 @@
/>
-
-
{
// 校验表单
await formRef.value.validate()
await itemFormRef.value.validate()
- console.log(itemFormRef.value)
- itemFormRef.value.selectedRows.forEach(item => {
- console.log(item.id, item.name)
-})
// 提交请求
formLoading.value = true
try {
- const data = formData.value as unknown as StockInVO
- itemFormRef.value.selectedRows.forEach(item => {
- console.log(item.id, item.name)})
- formData.value.items = itemFormRef.value.selectedRows
+ itemFormRef.value.selectedRows.forEach((item, index) => {
+ const i = {
+ warehouseId : formData.value.warehouseId,
+ productId : item.id,
+ productPrice: 0,
+ count: 1,
+ }
+ formData.value.items.push(i)
+});
+ const data = formData.value as unknown as StockInVO
if (formType.value === 'create') {
await StockInApi.createStockIn(data)
message.success(t('common.createSuccess'))
diff --git a/src/views/mes/moldreturn/components/StockInItemForm.vue b/src/views/mes/moldreturn/components/StockInItemForm.vue
index 7548e3b5..d2c52c67 100644
--- a/src/views/mes/moldreturn/components/StockInItemForm.vue
+++ b/src/views/mes/moldreturn/components/StockInItemForm.vue
@@ -24,7 +24,7 @@ v-model="queryParams.name" :placeholder="t('MoldManagement.Mold.name')" clearabl
-
+
@@ -56,12 +56,8 @@ import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import { MoldBrandApi, MoldVO } from '@/api/erp/mold'
import { useDictStoreWithOut } from '@/store/modules/dict'
-import type { FormInstance, FormRules } from 'element-plus'
-/** 设备类型 列表 */
-defineOptions({ name: 'DeviceLedger' })
-
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化
@@ -113,32 +109,34 @@ const resetQuery = () => {
handleQuery()
}
-// 选中的行数据
+const tableRef = ref()
const selectedRows = ref([])
-// 表单模型 - 只包含选中的数据
-const formModel = reactive({
- selectedItems: [] as any[]
-})
-// 监听选中的行变化,更新表单模型
-watch(selectedRows, (newSelected) => {
- formModel.selectedItems = [...newSelected]
-}, { deep: true })
+watch(list, async () => {
+ await nextTick()
+ restoreSelection()
+})
+const restoreSelection = () => {
+ if (!tableRef.value || selectedRows.value.length === 0) return
+ tableRef.value.clearSelection?.()
+ selectedRows.value.forEach(selectedRow => {
+ const rowInTable = list.value.find(row => row.id === selectedRow.id)
+ if (rowInTable) {
+ tableRef.value.toggleRowSelection?.(rowInTable, true)
+ }
+ })
+}
-// 选择变化事件
const handleSelectionChange = (rows: any[]) => {
selectedRows.value = rows
- // console.log('选中的行:', rows)
}
-// 表单引用
-const formRef = ref()
const validate = async (): Promise => {
- if (!formRef.value) return false
+ if (!tableRef.value) return false
try {
- await formRef.value.validate()
+ await tableRef.value.validate()
return true
} catch (error) {
return false
diff --git a/src/views/mes/moldreturn/index.vue b/src/views/mes/moldreturn/index.vue
index d0bc769d..00b7cc96 100644
--- a/src/views/mes/moldreturn/index.vue
+++ b/src/views/mes/moldreturn/index.vue
@@ -224,15 +224,14 @@
>
{{ t('MoldManagement.MoldReturn.approve') }}
-
{{ t('MoldManagement.MoldReturn.unapprove') }}
-
+ -->
+
+
+
+
+