feat:模具出库/模具入库-详情添加模具组/子模具列表

main
黄伟杰 2 months ago
parent f62a08eaae
commit e12004a43a

@ -38,7 +38,7 @@ export const StockInApi = {
// 更新其它入库单的状态 // 更新其它入库单的状态
updateStockInStatus: async (id: number, status: number) => { updateStockInStatus: async (id: number, status: number) => {
return await request.put({ return await request.put({
url: `/erp/stock-in/update-status`, url: `/erp/stock-in/update-mold-status`,
params: { params: {
id, id,
status status

@ -38,7 +38,7 @@ export const StockOutApi = {
// 更新其它出库单的状态 // 更新其它出库单的状态
updateStockOutStatus: async (id: number, status: number) => { updateStockOutStatus: async (id: number, status: number) => {
return await request.put({ return await request.put({
url: `/erp/stock-out/update-status`, url: `/erp/stock-out/update-mold-status`,
params: { params: {
id, id,
status status

@ -2739,7 +2739,10 @@ export default {
approveConfirm: 'Confirm approve this stock in order?', approveConfirm: 'Confirm approve this stock in order?',
unapproveConfirm: 'Confirm unapprove this stock in order?', unapproveConfirm: 'Confirm unapprove this stock in order?',
approveSuccess: 'Approve successful', approveSuccess: 'Approve successful',
unapproveSuccess: 'Unapprove successful' unapproveSuccess: 'Unapprove successful',
subMoldList: 'Sub Mold List',
moldGroupList: 'Mold Group & Sub Mold List',
moldGroupListTitle: 'Stock In Mold Group List'
}, },
MoldGet: { MoldGet: {
@ -2794,7 +2797,8 @@ export default {
validatorItemOutIdRequired: 'Stock out id can not be empty', validatorItemOutIdRequired: 'Stock out id can not be empty',
validatorItemWarehouseRequired: 'Warehouse can not be empty', validatorItemWarehouseRequired: 'Warehouse can not be empty',
validatorItemMoldRequired: 'Mold can not be empty', validatorItemMoldRequired: 'Mold can not be empty',
validatorItemCountRequired: 'Quantity can not be empty' validatorItemCountRequired: 'Quantity can not be empty',
moldGroupListTitle: 'Stock Out Mold Group List'
}, },
MoldInspectionItems: { MoldInspectionItems: {

@ -2246,7 +2246,10 @@ export default {
approveConfirm: '确定审批该入库单吗?', approveConfirm: '确定审批该入库单吗?',
unapproveConfirm: '确定反审批该入库单吗?', unapproveConfirm: '确定反审批该入库单吗?',
approveSuccess: '审批成功', approveSuccess: '审批成功',
unapproveSuccess: '反审批成功' unapproveSuccess: '反审批成功',
subMoldList: '子模具列表',
moldGroupList: '模具组及子模具列表',
moldGroupListTitle: '入库模具组清单'
}, },
MoldGet: { MoldGet: {
@ -2301,7 +2304,8 @@ export default {
validatorItemOutIdRequired: '出库编号不能为空', validatorItemOutIdRequired: '出库编号不能为空',
validatorItemWarehouseRequired: '仓库不能为空', validatorItemWarehouseRequired: '仓库不能为空',
validatorItemMoldRequired: '模具不能为空', validatorItemMoldRequired: '模具不能为空',
validatorItemCountRequired: '数量不能为空' validatorItemCountRequired: '数量不能为空',
moldGroupListTitle: '出库模具组清单'
}, },
MoldInspectionItems: { MoldInspectionItems: {

@ -89,11 +89,46 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<!-- 子表的表单 --> <!-- 模具组及子模具列表 -->
<ContentWrap> <ContentWrap>
<el-tabs v-model="subTabsName" class="-mt-15px -mb-10px"> <el-tabs v-model="subTabsName" class="-mt-15px -mb-10px">
<el-tab-pane :label="t('MoldManagement.MoldGet.itemListTitle')" name="item"> <el-tab-pane :label="t('MoldManagement.MoldGet.moldGroupListTitle')" name="item">
<StockOutItemForm ref="itemFormRef" :items="formData.items" :disabled="disabled" /> <el-table :data="formData.items || []" :stripe="true" :show-overflow-tooltip="true" row-key="id">
<el-table-column type="expand" width="48">
<template #default="{ row: itemRow }">
<div class="p-12px">
<el-table :data="itemRow.moldList || []" :stripe="true" :show-overflow-tooltip="true" row-key="id">
<el-table-column :label="t('MoldManagement.MoldListPage.code')" prop="code" min-width="150" />
<el-table-column :label="t('MoldManagement.MoldListPage.subMoldName')" prop="name" min-width="160" />
<el-table-column :label="t('MoldManagement.MoldListPage.type')" min-width="120">
<template #default="{ row: moldRow }">
<dict-tag :type="DICT_TYPE.SUBMOLD_TYPE" :value="moldRow.type" />
</template>
</el-table-column>
<el-table-column :label="t('MoldManagement.MoldListPage.installLocation')" min-width="140">
<template #default="{ row: moldRow }">
{{ moldRow.installLocation || moldRow.machineName || '-' }}
</template>
</el-table-column>
<el-table-column :label="t('MoldManagement.MoldListPage.material')" min-width="120">
<template #default="{ row: moldRow }">
{{ moldRow.material || '-' }}
</template>
</el-table-column>
<el-table-column :label="t('MoldManagement.MoldListPage.quantity')" width="90" align="center">
<template #default="{ row: moldRow }">
{{ moldRow.quantity || 1 }}
</template>
</el-table-column>
</el-table>
</div>
</template>
</el-table-column>
<el-table-column :label="t('MoldManagement.MoldGet.itemMoldName')" prop="moldSetName" min-width="160" />
<el-table-column :label="t('MoldManagement.MoldGet.itemMoldCode')" prop="productBarCode" min-width="150" />
<el-table-column :label="t('MoldManagement.MoldGet.itemCount')" prop="count" width="100" align="center" />
<el-table-column :label="t('MoldManagement.MoldGet.itemRemark')" prop="remark" min-width="120" />
</el-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</ContentWrap> </ContentWrap>
@ -109,9 +144,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { StockOutApi, StockOutVO } from '@/api/erp/stock/out' import { StockOutApi, StockOutVO } from '@/api/erp/stock/out'
import StockOutItemForm from './components/StockOutItemForm.vue'
import { CustomerApi, CustomerVO } from '@/api/erp/sale/customer'
import {DICT_TYPE, getBoolDictOptions, getStrDictOptions} from "@/utils/dict"; import {DICT_TYPE, getBoolDictOptions, getStrDictOptions} from "@/utils/dict";
import { CustomerApi, CustomerVO } from '@/api/erp/sale/customer'
import { WarehouseApi, WarehouseVO } from '@/api/erp/stock/warehouse' import { WarehouseApi, WarehouseVO } from '@/api/erp/stock/warehouse'
/** ERP 其它出库单表单 */ /** ERP 其它出库单表单 */
@ -156,7 +190,6 @@ const options = [
] ]
/** 子表的表单 */ /** 子表的表单 */
const subTabsName = ref('item') const subTabsName = ref('item')
const itemFormRef = ref()
const ensureWarehouseId = () => { const ensureWarehouseId = () => {
if (formData.value.warehouseId !== undefined && formData.value.warehouseId !== null) return if (formData.value.warehouseId !== undefined && formData.value.warehouseId !== null) return
@ -201,41 +234,9 @@ const emit = defineEmits(['success', 'closed']) // 定义 success 和 closed 事
const submitForm = async () => { const submitForm = async () => {
// //
await formRef.value.validate() await formRef.value.validate()
await itemFormRef.value.validate()
// //
formLoading.value = true formLoading.value = true
try { try {
const existingByProductId = new Map<number, any>(
(formData.value.items ?? [])
.filter((it: any) => it && (it.productId ?? it.id) !== undefined && (it.productId ?? it.id) !== null)
.map((it: any) => [Number(it.productId ?? it.id), it])
)
const selectedRows = (itemFormRef.value.selectedRows ?? [])
formData.value.items = selectedRows
.filter((it: any) => it && it.productId !== undefined && it.productId !== null)
.map((row: any) => {
const productId = Number(row.productId)
const existing = existingByProductId.get(productId)
if (existing) {
return {
id: row.id,
warehouseId: formData.value.warehouseId,
productId,
productPrice: existing.productPrice ?? 0,
count: existing.count ?? 1,
remark: existing.remark ?? null
}
}
return {
id: row.id,
warehouseId: formData.value.warehouseId,
productId,
productPrice: 0,
count: 1
}
})
const data = formData.value as unknown as StockOutVO const data = formData.value as unknown as StockOutVO
if (formType.value === 'create') { if (formType.value === 'create') {
await StockOutApi.createStockOut(data) await StockOutApi.createStockOut(data)

@ -89,11 +89,46 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<!-- 子表的表单 --> <!-- 模具组及子模具列表 -->
<ContentWrap> <ContentWrap>
<el-tabs v-model="subTabsName" class="-mt-15px -mb-10px"> <el-tabs v-model="subTabsName" class="-mt-15px -mb-10px">
<el-tab-pane :label="t('MoldManagement.MoldReturn.itemListTitle')" name="item"> <el-tab-pane :label="t('MoldManagement.MoldReturn.moldGroupListTitle')" name="item">
<StockInItemForm ref="itemFormRef" :items="formData.items" :disabled="disabled" /> <el-table :data="formData.items || []" :stripe="true" :show-overflow-tooltip="true" row-key="id">
<el-table-column type="expand" width="48">
<template #default="{ row: itemRow }">
<div class="p-12px">
<el-table :data="itemRow.moldList || []" :stripe="true" :show-overflow-tooltip="true" row-key="id">
<el-table-column :label="t('MoldManagement.MoldListPage.code')" prop="code" min-width="150" />
<el-table-column :label="t('MoldManagement.MoldListPage.subMoldName')" prop="name" min-width="160" />
<el-table-column :label="t('MoldManagement.MoldListPage.type')" min-width="120">
<template #default="{ row: moldRow }">
<dict-tag :type="DICT_TYPE.SUBMOLD_TYPE" :value="moldRow.type" />
</template>
</el-table-column>
<el-table-column :label="t('MoldManagement.MoldListPage.installLocation')" min-width="140">
<template #default="{ row: moldRow }">
{{ moldRow.installLocation || moldRow.machineName || '-' }}
</template>
</el-table-column>
<el-table-column :label="t('MoldManagement.MoldListPage.material')" min-width="120">
<template #default="{ row: moldRow }">
{{ moldRow.material || '-' }}
</template>
</el-table-column>
<el-table-column :label="t('MoldManagement.MoldListPage.quantity')" width="90" align="center">
<template #default="{ row: moldRow }">
{{ moldRow.quantity || 1 }}
</template>
</el-table-column>
</el-table>
</div>
</template>
</el-table-column>
<el-table-column :label="t('MoldManagement.MoldReturn.itemMoldName')" prop="moldSetName" min-width="160" />
<el-table-column :label="t('MoldManagement.MoldReturn.itemMoldCode')" prop="productBarCode" min-width="150" />
<el-table-column :label="t('MoldManagement.MoldReturn.itemCount')" prop="count" width="100" align="center" />
<el-table-column :label="t('MoldManagement.MoldReturn.itemRemark')" prop="remark" min-width="120" />
</el-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</ContentWrap> </ContentWrap>
@ -109,7 +144,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { StockInApi, StockInVO } from '@/api/erp/stock/in' import { StockInApi, StockInVO } from '@/api/erp/stock/in'
import StockInItemForm from './components/StockInItemForm.vue' import { DICT_TYPE } from '@/utils/dict'
import { CustomerApi, CustomerVO } from '@/api/erp/sale/customer' import { CustomerApi, CustomerVO } from '@/api/erp/sale/customer'
import { WarehouseApi, WarehouseVO } from '@/api/erp/stock/warehouse' import { WarehouseApi, WarehouseVO } from '@/api/erp/stock/warehouse'
@ -155,7 +190,6 @@ const options = [
] ]
/** 子表的表单 */ /** 子表的表单 */
const subTabsName = ref('item') const subTabsName = ref('item')
const itemFormRef = ref()
const ensureWarehouseId = () => { const ensureWarehouseId = () => {
if (formData.value.warehouseId !== undefined && formData.value.warehouseId !== null) return if (formData.value.warehouseId !== undefined && formData.value.warehouseId !== null) return
@ -200,41 +234,9 @@ const emit = defineEmits(['success', 'closed']) // 定义 success 和 closed 事
const submitForm = async () => { const submitForm = async () => {
// //
await formRef.value.validate() await formRef.value.validate()
await itemFormRef.value.validate()
// //
formLoading.value = true formLoading.value = true
try { try {
const existingByProductId = new Map<number, any>(
(formData.value.items ?? [])
.filter((it: any) => it && (it.productId ?? it.id) !== undefined && (it.productId ?? it.id) !== null)
.map((it: any) => [Number(it.productId ?? it.id), it])
)
const selectedRows = (itemFormRef.value.selectedRows ?? [])
formData.value.items = selectedRows
.filter((it: any) => it && it.productId !== undefined && it.productId !== null)
.map((row: any) => {
const productId = Number(row.productId)
const existing = existingByProductId.get(productId)
if (existing) {
return {
id: row.id,
warehouseId: formData.value.warehouseId,
productId,
productPrice: existing.productPrice ?? 0,
count: existing.count ?? 1,
remark: existing.remark ?? null
}
}
return {
id: row.id,
warehouseId: formData.value.warehouseId,
productId,
productPrice: 0,
count: 1
}
})
const data = formData.value as unknown as StockInVO const data = formData.value as unknown as StockInVO
if (formType.value === 'create') { if (formType.value === 'create') {
await StockInApi.createStockIn(data) await StockInApi.createStockIn(data)

@ -3,51 +3,25 @@
<div class="mold-return-page"> <div class="mold-return-page">
<template v-if="!formVisible"> <template v-if="!formVisible">
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form <el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" min-label-width="68px">
class="-mb-15px" <el-form-item :label="t('MoldManagement.MoldReturn.no')" prop="no">
:model="queryParams" <el-input v-model="queryParams.no" :placeholder="t('MoldManagement.MoldReturn.placeholderNo')" clearable
ref="queryFormRef" @keyup.enter="handleQuery" class="!w-240px" />
:inline="true" </el-form-item>
min-label-width="68px" <el-form-item :label="t('MoldManagement.MoldReturn.mold')" prop="productId">
> <el-select v-model="queryParams.productId" clearable filterable
<el-form-item :label="t('MoldManagement.MoldReturn.no')" prop="no"> :placeholder="t('MoldManagement.MoldReturn.placeholderMold')" class="!w-240px">
<el-input <el-option v-for="item in moldList" :key="item.id" :label="item.name" :value="item.id" />
v-model="queryParams.no" </el-select>
:placeholder="t('MoldManagement.MoldReturn.placeholderNo')" </el-form-item>
clearable <el-form-item :label="t('MoldManagement.MoldReturn.inTime')" prop="outTime">
@keyup.enter="handleQuery" <el-date-picker v-model="queryParams.outTime" value-format="YYYY-MM-DD HH:mm:ss" type="daterange"
class="!w-240px" :start-placeholder="t('MoldManagement.MoldReturn.placeholderInTimeStart')"
/> :end-placeholder="t('MoldManagement.MoldReturn.placeholderInTimeEnd')"
</el-form-item> :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" class="!w-240px" />
<el-form-item :label="t('MoldManagement.MoldReturn.mold')" prop="productId"> </el-form-item>
<el-select <!-- <el-form-item label="客户" prop="customerId">
v-model="queryParams.productId"
clearable
filterable
:placeholder="t('MoldManagement.MoldReturn.placeholderMold')"
class="!w-240px"
>
<el-option
v-for="item in moldList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item :label="t('MoldManagement.MoldReturn.inTime')" prop="outTime">
<el-date-picker
v-model="queryParams.outTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
:start-placeholder="t('MoldManagement.MoldReturn.placeholderInTimeStart')"
:end-placeholder="t('MoldManagement.MoldReturn.placeholderInTimeEnd')"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<!-- <el-form-item label="客户" prop="customerId">
<el-select <el-select
v-model="queryParams.customerId" v-model="queryParams.customerId"
clearable clearable
@ -63,177 +37,112 @@
/> />
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item :label="t('MoldManagement.MoldReturn.warehouse')" prop="warehouseId" v-show="showAllFilters"> <el-form-item :label="t('MoldManagement.MoldReturn.warehouse')" prop="warehouseId" v-show="showAllFilters">
<el-select <el-select v-model="queryParams.warehouseId" clearable filterable
v-model="queryParams.warehouseId" :placeholder="t('MoldManagement.MoldReturn.placeholderWarehouse')" class="!w-240px">
clearable <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id" />
filterable </el-select>
:placeholder="t('MoldManagement.MoldReturn.placeholderWarehouse')" </el-form-item>
class="!w-240px" <el-form-item :label="t('MoldManagement.MoldReturn.creator')" prop="creator" v-show="showAllFilters">
> <el-select v-model="queryParams.creator" clearable filterable
<el-option :placeholder="t('MoldManagement.MoldReturn.placeholderCreator')" class="!w-240px">
v-for="item in warehouseList" <el-option v-for="item in userList" :key="item.id" :label="item.nickname" :value="item.id" />
:key="item.id" </el-select>
:label="item.name" </el-form-item>
:value="item.id" <el-form-item :label="t('MoldManagement.MoldReturn.status')" prop="status" v-show="showAllFilters">
/> <el-select v-model="queryParams.status" :placeholder="t('MoldManagement.MoldReturn.placeholderStatus')"
</el-select> clearable class="!w-240px">
</el-form-item> <el-option v-for="dict in getIntDictOptions(DICT_TYPE.ERP_AUDIT_STATUS)" :key="dict.value"
<el-form-item :label="t('MoldManagement.MoldReturn.creator')" prop="creator" v-show="showAllFilters"> :label="dict.label" :value="dict.value" />
<el-select </el-select>
v-model="queryParams.creator" </el-form-item>
clearable <el-form-item :label="t('MoldManagement.MoldReturn.remark')" prop="remark" v-show="showAllFilters">
filterable <el-input v-model="queryParams.remark" :placeholder="t('MoldManagement.MoldReturn.placeholderRemark')"
:placeholder="t('MoldManagement.MoldReturn.placeholderCreator')" clearable @keyup.enter="handleQuery" class="!w-240px" />
class="!w-240px" </el-form-item>
> <el-form-item v-if="filterCount > 3">
<el-option <el-button type="text" class="text-primary" @click="toggleFilters">
v-for="item in userList" <Icon :icon="showAllFilters ? 'ep:arrow-up' : 'ep:arrow-down'" class="mr-5px" />
:key="item.id" {{ showAllFilters ? t('FactoryModeling.FactoryStructure.collapseText') :
:label="item.nickname" t('FactoryModeling.FactoryStructure.expandText') }}
:value="item.id" </el-button>
/> </el-form-item>
</el-select> <el-form-item>
</el-form-item> <el-button @click="handleQuery">
<el-form-item :label="t('MoldManagement.MoldReturn.status')" prop="status" v-show="showAllFilters"> <Icon icon="ep:search" class="mr-5px" /> {{ t('common.query') }}
<el-select </el-button>
v-model="queryParams.status" <el-button @click="resetQuery">
:placeholder="t('MoldManagement.MoldReturn.placeholderStatus')" <Icon icon="ep:refresh" class="mr-5px" /> {{ t('common.reset') }}
clearable </el-button>
class="!w-240px" <el-button type="primary" plain @click="openForm('create')" v-hasPermi="['erp:stock-out:create']">
> <Icon icon="ep:plus" class="mr-5px" /> {{ t('MoldManagement.MoldReturn.add') }}
<el-option </el-button>
v-for="dict in getIntDictOptions(DICT_TYPE.ERP_AUDIT_STATUS)" <el-button type="success" plain @click="handleExport" :loading="exportLoading"
:key="dict.value" v-hasPermi="['erp:stock-out:export']">
:label="dict.label" <Icon icon="ep:download" class="mr-5px" /> {{ t('MoldManagement.MoldReturn.export') }}
:value="dict.value" </el-button>
/> <el-button type="danger" plain @click="handleDelete(selectionList.map((item) => item.id))"
</el-select> v-hasPermi="['erp:stock-out:delete']" :disabled="selectionList.length === 0">
</el-form-item> <Icon icon="ep:delete" class="mr-5px" /> {{ t('MoldManagement.MoldReturn.delete') }}
<el-form-item :label="t('MoldManagement.MoldReturn.remark')" prop="remark" v-show="showAllFilters"> </el-button>
<el-input </el-form-item>
v-model="queryParams.remark" </el-form>
:placeholder="t('MoldManagement.MoldReturn.placeholderRemark')" </ContentWrap>
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item v-if="filterCount > 3">
<el-button type="text" class="text-primary" @click="toggleFilters">
<Icon :icon="showAllFilters ? 'ep:arrow-up' : 'ep:arrow-down'" class="mr-5px" />
{{ showAllFilters ? t('FactoryModeling.FactoryStructure.collapseText') : t('FactoryModeling.FactoryStructure.expandText') }}
</el-button>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('common.query') }}</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('common.reset') }}</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['erp:stock-out:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> {{ t('MoldManagement.MoldReturn.add') }}
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['erp:stock-out:export']"
>
<Icon icon="ep:download" class="mr-5px" /> {{ t('MoldManagement.MoldReturn.export') }}
</el-button>
<el-button
type="danger"
plain
@click="handleDelete(selectionList.map((item) => item.id))"
v-hasPermi="['erp:stock-out:delete']"
:disabled="selectionList.length === 0"
>
<Icon icon="ep:delete" class="mr-5px" /> {{ t('MoldManagement.MoldReturn.delete') }}
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<!-- <el-tabs v-model="activeName" @tab-click="handleTabClick"> --> <!-- <el-tabs v-model="activeName" @tab-click="handleTabClick"> -->
<!-- <el-tab-pane label="产品出库" name="产品出库" /> <!-- <el-tab-pane label="产品出库" name="产品出库" />
<el-tab-pane label="原料出库" name="原料出库" /> <el-tab-pane label="原料出库" name="原料出库" />
<el-tab-pane label="备件出库" name="备件出库" /> <el-tab-pane label="备件出库" name="备件出库" />
<el-tab-pane label="其他出库" name="其他出库" /> <el-tab-pane label="其他出库" name="其他出库" />
<el-tab-pane label="领模出库" name="领料出库" /> <el-tab-pane label="领模出库" name="领料出库" />
</el-tabs> --> </el-tabs> -->
<el-table <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"
v-loading="loading" @selection-change="handleSelectionChange" row-key="id">
:data="list" <el-table-column width="30" :label="t('MoldManagement.MoldReturn.select')" type="selection" />
:stripe="true" <el-table-column min-width="180" :label="t('MoldManagement.MoldReturn.no')" align="center" prop="no"
:show-overflow-tooltip="true" sortable />
@selection-change="handleSelectionChange" <el-table-column :label="t('MoldManagement.MoldReturn.moldInfo')" align="left" sortable prop="productNames"
> min-width="150" />
<el-table-column width="30" :label="t('MoldManagement.MoldReturn.select')" type="selection" /> <!-- <el-table-column label="客户" align="center" prop="customerName" sortable /> -->
<el-table-column min-width="180" :label="t('MoldManagement.MoldReturn.no')" align="center" prop="no" sortable /> <el-table-column :label="t('MoldManagement.MoldReturn.inTime')" align="center" sortable prop="outTime"
<el-table-column :label="t('MoldManagement.MoldReturn.moldInfo')" align="left" sortable prop="productNames" min-width="150" /> :formatter="dateFormatter2" width="120px" />
<!-- <el-table-column label="客户" align="center" prop="customerName" sortable /> --> <el-table-column :label="t('MoldManagement.MoldReturn.creator')" align="center" prop="creatorName" sortable />
<el-table-column <!-- <el-table-column
:label="t('MoldManagement.MoldReturn.inTime')"
align="center"
sortable
prop="outTime"
:formatter="dateFormatter2"
width="120px"
/>
<el-table-column :label="t('MoldManagement.MoldReturn.creator')" align="center" prop="creatorName" sortable />
<!-- <el-table-column
label="数量" label="数量"
align="right" align="right"
sortable sortable
prop="totalCount" prop="totalCount"
:formatter="erpCountTableColumnFormatter" :formatter="erpCountTableColumnFormatter"
/> --> /> -->
<!-- <el-table-column <!-- <el-table-column
label="金额" label="金额"
align="right" align="right"
sortable sortable
prop="totalPrice" prop="totalPrice"
:formatter="erpPriceTableColumnFormatter" :formatter="erpPriceTableColumnFormatter"
/> --> /> -->
<el-table-column :label="t('MoldManagement.MoldReturn.status')" align="center" fixed="right" width="90" prop="status" sortable> <el-table-column :label="t('MoldManagement.MoldReturn.status')" align="center" fixed="right" width="90"
<template #default="scope"> prop="status" sortable>
<dict-tag :type="DICT_TYPE.ERP_AUDIT_STATUS" :value="scope.row.status" /> <template #default="scope">
</template> <dict-tag :type="DICT_TYPE.ERP_AUDIT_STATUS" :value="scope.row.status" />
</el-table-column> </template>
<el-table-column :label="t('MoldManagement.MoldReturn.operate')" align="center" fixed="right" width="220"> </el-table-column>
<template #default="scope"> <el-table-column :label="t('MoldManagement.MoldReturn.operate')" align="center" fixed="right" width="220">
<el-button <template #default="scope">
link <el-button link @click="openForm('detail', scope.row.id)" v-hasPermi="['erp:stock-out:query']">
@click="openForm('detail', scope.row.id)" {{ t('MoldManagement.MoldReturn.detail') }}
v-hasPermi="['erp:stock-out:query']" </el-button>
> <el-button link type="primary" @click="openForm('update', scope.row.id)"
{{ t('MoldManagement.MoldReturn.detail') }} v-hasPermi="['erp:stock-out:update']" :disabled="scope.row.status === 20">
</el-button> {{ t('MoldManagement.MoldReturn.edit') }}
<el-button </el-button>
link <el-button link type="primary" @click="handleUpdateStatus(scope.row.id, 20)"
type="primary" v-hasPermi="['erp:stock-out:update-status']" v-if="scope.row.status === 10">
@click="openForm('update', scope.row.id)" {{ t('MoldManagement.MoldReturn.approve') }}
v-hasPermi="['erp:stock-out:update']" </el-button>
:disabled="scope.row.status === 20" <!-- <el-button
>
{{ t('MoldManagement.MoldReturn.edit') }}
</el-button>
<el-button
link
type="primary"
@click="handleUpdateStatus(scope.row.id, 20)"
v-hasPermi="['erp:stock-out:update-status']"
v-if="scope.row.status === 10"
>
{{ t('MoldManagement.MoldReturn.approve') }}
</el-button>
<!-- <el-button
link link
type="danger" type="danger"
@click="handleUpdateStatus(scope.row.id, 10)" @click="handleUpdateStatus(scope.row.id, 10)"
@ -241,25 +150,16 @@
> >
{{ t('MoldManagement.MoldReturn.unapprove') }} {{ t('MoldManagement.MoldReturn.unapprove') }}
</el-button> --> </el-button> -->
<el-button <el-button link type="danger" @click="handleDelete([scope.row.id])" v-hasPermi="['erp:stock-out:delete']">
link {{ t('MoldManagement.MoldReturn.delete') }}
type="danger" </el-button>
@click="handleDelete([scope.row.id])" </template>
v-hasPermi="['erp:stock-out:delete']" </el-table-column>
> </el-table>
{{ t('MoldManagement.MoldReturn.delete') }} <!-- 分页 -->
</el-button> <Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
</template> @pagination="getList" />
</el-table-column> </ContentWrap>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
</template> </template>
<!-- 表单添加/修改 --> <!-- 表单添加/修改 -->
@ -359,7 +259,7 @@ const handleDelete = async (ids: number[]) => {
// //
await getList() await getList()
selectionList.value = selectionList.value.filter((item) => !ids.includes(item.id)) selectionList.value = selectionList.value.filter((item) => !ids.includes(item.id))
} catch {} } catch { }
} }
/** 审批/反审批操作 */ /** 审批/反审批操作 */
@ -372,7 +272,7 @@ const handleUpdateStatus = async (id: number, status: number) => {
message.success(successText) message.success(successText)
// //
await getList() await getList()
} catch {} } catch { }
} }
/** 导出按钮操作 */ /** 导出按钮操作 */
@ -401,7 +301,7 @@ const query = reactive({
}) })
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
queryParams.inType ='模具入库' queryParams.inType = '模具入库'
await getList() await getList()
// //
// productList.value = await ProductApi.getProductSimpleList() // productList.value = await ProductApi.getProductSimpleList()

Loading…
Cancel
Save