|
|
@ -70,19 +70,32 @@ |
|
|
|
@searchTableSuccessDetail="searchTableSuccessDetail" |
|
|
|
/> |
|
|
|
|
|
|
|
<!-- 导入 --> |
|
|
|
<ImportForm ref="importFormRef" :url="importFormUrlRef" :importTemplateData="importTemplateData" |
|
|
|
@success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" /> |
|
|
|
<!-- 创建标签 --> |
|
|
|
<BasicForm |
|
|
|
ref="formLabelRef" |
|
|
|
@success="getList" |
|
|
|
:tableAllSchemas="detailListTableColumns" |
|
|
|
:tableFormRules="ProductionreturnRequestDetailLabelRules" |
|
|
|
:tableData="detatableData.tableList" |
|
|
|
:isBusiness="true" |
|
|
|
:isShowButton="false" |
|
|
|
@handleAddTable="handleAddTable" |
|
|
|
@handleDeleteTable="handleDeleteTable" |
|
|
|
@searchTableSuccess="searchTableSuccess" |
|
|
|
@submitForm="submitFormLabel" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script setup lang="ts"> |
|
|
|
import download from '@/utils/download' |
|
|
|
import { ProductionreturnRequestMain,ProductionreturnRequestMainRules,ProductionreturnRequestDetail,ProductionreturnRequestDetailRules } from './productionreturnRequestMainNo.data' |
|
|
|
import { ProductionreturnRequestMain,ProductionreturnRequestMainRules,ProductionreturnRequestDetail,ProductionreturnRequestDetailRules,ProductionreturnRequestDetailLabel,ProductionreturnRequestDetailLabelRules } from '../productionreturnRequestMain/productionreturnRequestMain.data' |
|
|
|
import * as ProductionreturnRequestMainNoApi from '@/api/wms/productionreturnRequestMainNo' |
|
|
|
import * as ProductionreturnRequestDetailNoApi from '@/api/wms/productionreturnRequestDetailNo' |
|
|
|
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|
|
|
import * as ItembasicApi from '@/api/wms/itembasic' |
|
|
|
import * as PackageApi from '@/api/wms/package' |
|
|
|
|
|
|
|
// 生产退料申请 |
|
|
|
// 不合格生产退料申请 |
|
|
|
defineOptions({ name: 'ProductionreturnRequestMainNo' }) |
|
|
|
|
|
|
|
const message = useMessage() // 消息弹窗 |
|
|
@ -93,7 +106,14 @@ const routeName = ref() |
|
|
|
routeName.value = route.name |
|
|
|
const tableColumns = ref(ProductionreturnRequestMain.allSchemas.tableColumns) |
|
|
|
|
|
|
|
const importFormUrlRef = ref('/wms/productionreturn-request-main/import') |
|
|
|
//创建标签 |
|
|
|
const detailListTableColumns = ProductionreturnRequestDetailLabel.allSchemas |
|
|
|
const isCreateLabel = ref(false) |
|
|
|
const formLabelRef = ref() |
|
|
|
const { tableObject: detatableData, tableMethods: detatableMethods } =useTable({ |
|
|
|
getListApi: ProductionreturnRequestDetailNoApi.getProductionreturnRequestDetailPage |
|
|
|
}) |
|
|
|
const { getList:getDetailList } = detatableMethods |
|
|
|
|
|
|
|
// 字段设置 更新主列表字段 |
|
|
|
const updataTableColumns = (val) => { |
|
|
@ -105,18 +125,30 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => |
|
|
|
nextTick(() => { |
|
|
|
if (type == 'tableForm') { |
|
|
|
// 明细查询页赋值 |
|
|
|
if(formField == 'packingNumber') { |
|
|
|
row['packingNumber'] = val[0]['packingNumber'] |
|
|
|
row['containerNumber'] = val[0]['containerNumber'] |
|
|
|
if(formField == 'itemCode') { |
|
|
|
// row['packingNumber'] = val[0]['packingNumber'] |
|
|
|
// row['containerNumber'] = val[0]['containerNumber'] |
|
|
|
row['batch'] = val[0]['batch'] |
|
|
|
row['itemCode'] = val[0]['itemCode'] |
|
|
|
row['uom'] = val[0]['uom'] |
|
|
|
row['inventoryStatus'] = val[0]['inventoryStatus'] |
|
|
|
row['qty'] = val[0]['qty'] |
|
|
|
// 修改 tableform 属性 数量最大值设置为库存余额中数量 |
|
|
|
ProductionreturnRequestDetail.allSchemas.tableFormColumns.map(item => { |
|
|
|
if(item.field == 'qty') { |
|
|
|
item.tableForm.max = val[0]['qty'] |
|
|
|
} |
|
|
|
}) |
|
|
|
} else if(formField == 'workStationCode') { |
|
|
|
row['workStationCode'] = val[0]['code'] |
|
|
|
row['fromLocationCode'] = val[0]['rawLocationCode'] |
|
|
|
} else { |
|
|
|
row[formField] = val[0][searchField] |
|
|
|
} |
|
|
|
} else { |
|
|
|
const setV = {} |
|
|
|
setV[formField] = val[0][searchField] |
|
|
|
tableData.value = [] // 重置明细数据 |
|
|
|
formRef.setValues(setV) |
|
|
|
} |
|
|
|
}) |
|
|
@ -125,12 +157,21 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => |
|
|
|
const searchTableSuccessDetail = (formField, searchField, val, formRef ) => { |
|
|
|
nextTick(() => { |
|
|
|
const setV = {} |
|
|
|
if(formField == 'packingNumber') { |
|
|
|
setV['packingNumber'] = val[0]['packingNumber'] |
|
|
|
setV['containerNumber'] = val[0]['containerNumber'] |
|
|
|
if(formField == 'itemCode') { |
|
|
|
setV['batch'] = val[0]['batch'] |
|
|
|
setV['itemCode'] = val[0]['itemCode'] |
|
|
|
setV['uom'] = val[0]['uom'] |
|
|
|
setV['inventoryStatus'] = val[0]['inventoryStatus'] |
|
|
|
setV['qty'] = val[0]['qty'] |
|
|
|
// 修改 tableform 属性 数量最大值设置为库存余额中数量 |
|
|
|
ProductionreturnRequestDetail.allSchemas.tableFormColumns.map(item => { |
|
|
|
if(item.field == 'qty') { |
|
|
|
item.tableForm.max = val[0]['qty'] |
|
|
|
} |
|
|
|
}) |
|
|
|
} else if(formField == 'workStationCode') { |
|
|
|
setV['workStationCode'] = val[0]['code'] |
|
|
|
setV['fromLocationCode'] = val[0]['rawLocationCode'] |
|
|
|
} else { |
|
|
|
setV[formField] = val[0][searchField] |
|
|
|
} |
|
|
@ -147,42 +188,7 @@ const { getList, setSearchParams } = tableMethods |
|
|
|
|
|
|
|
// 列表头部按钮 |
|
|
|
const HeadButttondata = [ |
|
|
|
{ |
|
|
|
label: '新增合格', |
|
|
|
name: 'xzhg', |
|
|
|
hide: false, |
|
|
|
type: 'primary', |
|
|
|
icon: 'ep:plus', |
|
|
|
color: '', |
|
|
|
hasPermi:'wms:productionreturn-request-main:create' |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '新增不合格', |
|
|
|
name: 'xzbhg', |
|
|
|
hide: false, |
|
|
|
type: 'primary', |
|
|
|
icon: 'ep:plus', |
|
|
|
color: '', |
|
|
|
hasPermi:'wms:productionreturn-request-main:create' |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '导入合格', |
|
|
|
name: 'drhg', |
|
|
|
hide: false, |
|
|
|
type: 'warning', |
|
|
|
icon: 'ep:upload', |
|
|
|
color: '', |
|
|
|
hasPermi:'wms:productionreturn-request-main:import' |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '导入不合格', |
|
|
|
name: 'drbhg', |
|
|
|
hide: false, |
|
|
|
type: 'warning', |
|
|
|
icon: 'ep:upload', |
|
|
|
color: '', |
|
|
|
hasPermi:'wms:productionreturn-request-main:import' |
|
|
|
}, |
|
|
|
defaultButtons.defaultAddBtn({hasPermi:'wms:productionreturn-request-main:create'}), // 新增 |
|
|
|
defaultButtons.defaultExportBtn({hasPermi:'wms:productionreturn-request-main:export'}), // 导出 |
|
|
|
defaultButtons.defaultFreshBtn(null), // 刷新 |
|
|
|
defaultButtons.defaultFilterBtn(null), // 筛选 |
|
|
@ -192,15 +198,8 @@ const HeadButttondata = [ |
|
|
|
|
|
|
|
// 头部按钮事件 |
|
|
|
const buttonBaseClick = (val, item) => { |
|
|
|
if (val == 'xzhg') { // 新增合格 |
|
|
|
openForm('create') |
|
|
|
} else if (val == 'xzbhg') { // 新增不合格 |
|
|
|
if (val == 'add') { // 新增 |
|
|
|
openForm('create') |
|
|
|
} else if (val == 'drhg') { // 导入合格 |
|
|
|
handleImport() |
|
|
|
} else if (val == 'drbhg') { // 导入不合格 |
|
|
|
importFormUrlRef.value = '/wms/productionreturn-request-main/importNO' |
|
|
|
handleImport() |
|
|
|
} else if (val == 'export') { // 导出 |
|
|
|
handleExport() |
|
|
|
} else if (val == 'refresh') { // 刷新 |
|
|
@ -223,31 +222,143 @@ const isShowMainButton = (row,val) => { |
|
|
|
// 列表-操作按钮 |
|
|
|
const butttondata = (row) => { |
|
|
|
return [ |
|
|
|
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6'])}), // 关闭 |
|
|
|
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5'])}), // 重新添加 |
|
|
|
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1'])}), // 提交审批 |
|
|
|
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2'])}), // 驳回 |
|
|
|
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2'])}), // 审批通过 |
|
|
|
defaultButtons.mainListEditBtn({hasPermi:'wms:productionreturn-request-main:update'}), // 编辑 |
|
|
|
defaultButtons.mainListDeleteBtn({hasPermi:'wms:productionreturn-request-main:delete'}), // 删除 |
|
|
|
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4']), hasPermi:'wms:productionreturn-request-main:close'}), // 关闭 |
|
|
|
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']), hasPermi:'wms:productionreturn-request-main:reAdd'}), // 重新添加 |
|
|
|
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:productionreturn-request-main:submit'}), // 提交审批 |
|
|
|
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:productionreturn-request-main:refused'}), // 驳回 |
|
|
|
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:productionreturn-request-main:agree'}), // 审批通过 |
|
|
|
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']), hasPermi:'wms:productionreturn-request-main:handle'}), // 处理 |
|
|
|
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:productionreturn-request-main:update'}), // 编辑 |
|
|
|
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:productionreturn-request-main:delete'}), // 删除 |
|
|
|
// 创建标签 |
|
|
|
{ |
|
|
|
label: '创建标签', |
|
|
|
name: 'cjbq', |
|
|
|
hide: isShowMainButton(row,['3']), |
|
|
|
type: 'primary', |
|
|
|
icon: '', |
|
|
|
color: '', |
|
|
|
hasPermi: '', |
|
|
|
link: true, // 文本展现按钮 |
|
|
|
}, |
|
|
|
] |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 列表-操作按钮事件 |
|
|
|
const buttonTableClick = async (val, row) => { |
|
|
|
if (val == 'mainClose') { // 关闭 |
|
|
|
console.log('列表-操作按钮事件-关闭') |
|
|
|
await message.confirm('确认要关闭吗?') |
|
|
|
ProductionreturnRequestMainNoApi.close(row.id).then(() => { |
|
|
|
message.success(t('common.updateSuccess')) |
|
|
|
getList() |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
} else if (val == 'mainReAdd') { // 重新添加 |
|
|
|
console.log('列表-操作按钮事件-重新添加') |
|
|
|
await message.confirm('确认要重新添加吗?') |
|
|
|
ProductionreturnRequestMainNoApi.reAdd(row.id).then(() => { |
|
|
|
message.success(t('common.updateSuccess')) |
|
|
|
getList() |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
} else if (val == 'mainSubmit') { // 提交审批 |
|
|
|
console.log('列表-操作按钮事件-提交审批') |
|
|
|
await message.confirm('确认要重新添加吗?') |
|
|
|
ProductionreturnRequestMainNoApi.submit(row.id).then(() => { |
|
|
|
message.success(t('common.updateSuccess')) |
|
|
|
getList() |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
} else if (val == 'mainTurnDown') { // 驳回 |
|
|
|
console.log('列表-操作按钮事件-驳回') |
|
|
|
await message.confirm('确认要重新添加吗?') |
|
|
|
ProductionreturnRequestMainNoApi.refused(row.id).then(() => { |
|
|
|
message.success(t('common.updateSuccess')) |
|
|
|
getList() |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
} else if (val == 'mainApprove') { // 审批通过 |
|
|
|
console.log('列表-操作按钮事件-审批通过') |
|
|
|
} else if (val == 'edit') { // 编辑 |
|
|
|
await message.confirm('确认要审批通过吗?') |
|
|
|
ProductionreturnRequestMainNoApi.agree(row.id).then(() => { |
|
|
|
message.success(t('common.updateSuccess')) |
|
|
|
getList() |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
} else if (val == 'cjbq') { // 创建标签 |
|
|
|
detatableData.params = { |
|
|
|
masterId:row.id |
|
|
|
} |
|
|
|
await getDetailList() |
|
|
|
// 判断 是否已创建标签 |
|
|
|
if (detatableData.tableList[0].packingNumber) { |
|
|
|
message.warning('已创建过标签!!!') |
|
|
|
return |
|
|
|
} |
|
|
|
// 打开创建标签页面 |
|
|
|
// dialogVisible.value = true |
|
|
|
formLabelRef.value.open('create', row) |
|
|
|
detatableData.tableList.map((item) => { |
|
|
|
// item.batch = '000000' 不合格批次 用原有数据的 |
|
|
|
// 查询物品类型 原料 只能选择 供应商代码 半成品成品其他 只能选择 生产线 |
|
|
|
ItembasicApi.getItembasicPage({ |
|
|
|
pageSize: 10, |
|
|
|
pageNo: 1, |
|
|
|
code: item.itemCode, |
|
|
|
sort: '', |
|
|
|
by: 'ASC', |
|
|
|
}).then(res => { |
|
|
|
if (res.list.length > 0) { |
|
|
|
// 判断物品类型 是否 原料 |
|
|
|
if (res.list[0].type == "RAW") { |
|
|
|
// 修改 tableform 属性 |
|
|
|
detailListTableColumns.tableFormColumns.map(item => { |
|
|
|
if(item.field == 'productionLineCodePackage') { |
|
|
|
item.tableForm.isInpuFocusShow = false |
|
|
|
item.tableForm.disabled = true |
|
|
|
ProductionreturnRequestDetailLabelRules.productionLineCodePackage[0].required = false |
|
|
|
} |
|
|
|
if(item.field == 'supplierItemCode') { |
|
|
|
item.tableForm.isInpuFocusShow = true |
|
|
|
item.tableForm.disabled = false |
|
|
|
ProductionreturnRequestDetailLabelRules.supplierItemCode[0].required = true |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
// 修改 tableform 属性 |
|
|
|
detailListTableColumns.tableFormColumns.map(item => { |
|
|
|
if(item.field == 'supplierItemCode') { |
|
|
|
item.tableForm.isInpuFocusShow = false |
|
|
|
item.tableForm.disabled = true |
|
|
|
ProductionreturnRequestDetailLabelRules.supplierItemCode[0].required = false |
|
|
|
} |
|
|
|
if(item.field == 'productionLineCodePackage') { |
|
|
|
item.tableForm.isInpuFocusShow = true |
|
|
|
item.tableForm.disabled = false |
|
|
|
ProductionreturnRequestDetailLabelRules.productionLineCodePackage[0].required = true |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
} else { |
|
|
|
message.warning('没有查询到物品代码:【' + item.itemCode + '】') |
|
|
|
return |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
} else if (val == 'mainHandle') { // 处理 |
|
|
|
if (!isCreateLabel.value) { |
|
|
|
message.warning('请先创建标签') |
|
|
|
return |
|
|
|
} |
|
|
|
ProductionreturnRequestMainNoApi.handle(row.id).then(() => { |
|
|
|
message.success(t('common.updateSuccess')) |
|
|
|
getList() |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
} else if (val == 'edit') { // 编辑 |
|
|
|
openForm('update', row) |
|
|
|
} else if (val == 'delete') { // 删除 |
|
|
|
handleDelete(row.id) |
|
|
@ -289,7 +400,7 @@ const handleExport = async () => { |
|
|
|
// 发起导出 |
|
|
|
exportLoading.value = true |
|
|
|
const data = await ProductionreturnRequestMainNoApi.exportProductionreturnRequestMain(setSearchParams) |
|
|
|
download.excel(data, '生产退料申请主.xlsx') |
|
|
|
download.excel(data, '生产退料不合格申请.xlsx') |
|
|
|
} catch { |
|
|
|
} finally { |
|
|
|
exportLoading.value = false |
|
|
@ -317,6 +428,8 @@ const handleDeleteTable = (item, index) => { |
|
|
|
// 主子数据 提交 |
|
|
|
const submitForm = async (formType, data) => { |
|
|
|
data.subList = tableData.value // 拼接子表数据参数 |
|
|
|
// 合格退料 添加参数 isOK |
|
|
|
data.isOK = false // 不合格 false |
|
|
|
try { |
|
|
|
if (formType === 'create') { |
|
|
|
await ProductionreturnRequestMainNoApi.createProductionreturnRequestMain(data) |
|
|
@ -333,21 +446,23 @@ const submitForm = async (formType, data) => { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** 导入 */ |
|
|
|
const importFormRef = ref() |
|
|
|
const handleImport = () => { |
|
|
|
importFormRef.value.open() |
|
|
|
} |
|
|
|
|
|
|
|
// 导入附件弹窗所需的参数 |
|
|
|
const importTemplateData = reactive({ |
|
|
|
templateUrl: '', |
|
|
|
templateTitle: '生产退料申请主导入模版.xlsx' |
|
|
|
}) |
|
|
|
|
|
|
|
// 导入成功之后 |
|
|
|
const importSuccess = () => { |
|
|
|
getList() |
|
|
|
// 创建标签 |
|
|
|
const submitFormLabel = async (formType, data) => { |
|
|
|
try { |
|
|
|
detatableData.tableList.forEach(async (item) => { |
|
|
|
await PackageApi.createPackageLabel(item).then(res => { |
|
|
|
isCreateLabel.value = true |
|
|
|
message.success('创建标签成功') |
|
|
|
}).catch(err => { |
|
|
|
isCreateLabel.value = false |
|
|
|
console.log(err) |
|
|
|
message.error('创建标签失败') |
|
|
|
}) |
|
|
|
}) |
|
|
|
} finally { |
|
|
|
formLabelRef.value.formLoading = false |
|
|
|
formLabelRef.value.dialogVisible = false |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 筛选提交 |
|
|
@ -362,6 +477,5 @@ const searchFormClick = (searchData) => { |
|
|
|
/** 初始化 **/ |
|
|
|
onMounted(async () => { |
|
|
|
getList() |
|
|
|
importTemplateData.templateUrl = await ProductionreturnRequestMainNoApi.importTemplate() |
|
|
|
}) |
|
|
|
</script> |
|
|
|