|
@@ -6,6 +6,17 @@
|
|
|
<el-icon><Document /></el-icon>
|
|
|
<span>收回单信息</span>
|
|
|
</span>
|
|
|
+ <el-button-group>
|
|
|
+ <el-button v-if="editStatus" type="primary" icon="Finished" @click="submitForm"> 保存 </el-button>
|
|
|
+ <el-button v-else type="warning" icon="Edit" @click="editStatus = true">编辑</el-button>
|
|
|
+ <el-button v-if="form.id && editStatus" type="info" icon="Close" @click="editStatus = false">
|
|
|
+ 取消编辑
|
|
|
+ </el-button>
|
|
|
+ <el-button v-if="form.id" type="success" @click="getForm">
|
|
|
+ <i class="fa fa-refresh" aria-hidden="true" /> 刷新
|
|
|
+ </el-button>
|
|
|
+ </el-button-group>
|
|
|
+
|
|
|
<div class="close-btn" @click="cancel">
|
|
|
<i class="fa fa-times" aria-hidden="true" />
|
|
|
<!-- <span>关闭</span> -->
|
|
@@ -39,14 +50,7 @@
|
|
|
</el-form>
|
|
|
<!-- 渲染数据区 -->
|
|
|
<div class="form-details-btns-container">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- icon="Plus"
|
|
|
- @click="handleShowDialogOutSourceDetails"
|
|
|
- v-hasPermi="['business:outsource:add']"
|
|
|
- >
|
|
|
- 添加收回明细
|
|
|
- </el-button>
|
|
|
+ <el-button type="primary" icon="Plus" @click="handleShowDialogOutSourceDetails"> 添加收回明细 </el-button>
|
|
|
</div>
|
|
|
<div class="el-table-container">
|
|
|
<div class="el-table-inner-container">
|
|
@@ -54,6 +58,7 @@
|
|
|
<el-table-column label="行号" type="index" align="center" width="48" />
|
|
|
<el-table-column label="批次号" align="center" prop="lotCode" width="104" />
|
|
|
<el-table-column label="产品描述" align="center" prop="productDescription" width="320" />
|
|
|
+ <el-table-column label="产品数量" align="center" prop="productNum" width="96" />
|
|
|
<el-table-column
|
|
|
:label="form.packagingMethod === '0' ? '箱号' : '原箱号'"
|
|
|
align="center"
|
|
@@ -64,16 +69,25 @@
|
|
|
v-if="form.packagingMethod === '1'"
|
|
|
label="新箱号"
|
|
|
align="center"
|
|
|
- prop="new_carrier"
|
|
|
+ prop="newCarrier"
|
|
|
width="320"
|
|
|
/>
|
|
|
<el-table-column label="外协工序" align="center" prop="processNames" width="320" />
|
|
|
<el-table-column label="收回数量" align="center" prop="receiptNum" width="104">
|
|
|
<template #default="scope">
|
|
|
- <el-input v-model="scope.row.receiptNum" controls-position="right" />
|
|
|
+ <el-input-number
|
|
|
+ v-model="scope.row.receiptNum"
|
|
|
+ :min="0"
|
|
|
+ controls-position="right"
|
|
|
+ style="text-align: center"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="备注" align="center" prop="remark">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-input v-model="scope.row.remark" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="备注" align="center" prop="remark" />
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -87,25 +101,30 @@
|
|
|
</el-drawer>
|
|
|
</template>
|
|
|
<script setup>
|
|
|
-import { getReceipt } from '@/api/business/returnReceipt'
|
|
|
+import { getReceipt, addReceipt, updateReceipt } from '@/api/business/returnReceipt'
|
|
|
import dialogOutsourceDetails from './DialogOutsourceDetails'
|
|
|
const { proxy } = getCurrentInstance()
|
|
|
/** 表单抽屉 页变量 */
|
|
|
const loading = ref(false)
|
|
|
const visible = ref(false)
|
|
|
+const editStatus = ref(false)
|
|
|
const webHost = import.meta.env.VITE_APP_BASE_API
|
|
|
const form = ref({})
|
|
|
|
|
|
-/*********************** 方法区 ****************************/
|
|
|
+/**************************** 方法区 ****************************/
|
|
|
/** 打开抽屉 */
|
|
|
const open = (id) => {
|
|
|
reset()
|
|
|
- loading.value = true
|
|
|
visible.value = true
|
|
|
- getReceipt(id).then((response) => {
|
|
|
- form.value = response.data
|
|
|
- loading.value = false
|
|
|
- })
|
|
|
+ if (id) {
|
|
|
+ loading.value = true
|
|
|
+ getReceipt(id).then((response) => {
|
|
|
+ form.value = response.data
|
|
|
+ loading.value = false
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ editStatus.value = true
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/** 取消按钮 */
|
|
@@ -118,7 +137,6 @@ const cancel = () => {
|
|
|
const reset = () => {
|
|
|
form.value = {
|
|
|
id: null,
|
|
|
- tenantId: '0',
|
|
|
formCode: '',
|
|
|
formDate: proxy.parseTime(new Date(), '{y}-{m}-{d}'),
|
|
|
supplierId: '0',
|
|
@@ -131,27 +149,45 @@ const reset = () => {
|
|
|
/***************************** 外协明细对话框相关 *****************************/
|
|
|
// 打开外协明细选择对话框
|
|
|
const handleShowDialogOutSourceDetails = () => {
|
|
|
- const dayworkIds = form.value.details.map((item) => item.dayworkId)
|
|
|
- proxy.$refs.dialogProductsRef.open(dayworkIds)
|
|
|
+ const outsourceDetailIds = form.value.details.map((item) => item.outsourceDetailId)
|
|
|
+ proxy.$refs.dialogOutsourceDetailsRef.open(outsourceDetailIds)
|
|
|
}
|
|
|
// 外协明细选择带回
|
|
|
const handleMultipleSelectedOutsourceDetails = (selection) => {
|
|
|
selection.forEach((item) => {
|
|
|
const newDetail = {
|
|
|
- lotId: item.lotId,
|
|
|
- lotCode: item.lotCode,
|
|
|
- dayworkId: item.id,
|
|
|
- productId: item.productId,
|
|
|
+ outsourceDetailId: item.id,
|
|
|
productDescription: item.productDescription,
|
|
|
- productNum: 0,
|
|
|
+ productNum: item.productNum,
|
|
|
receiptNum: 0,
|
|
|
- processNames: '',
|
|
|
- remark: item.remark
|
|
|
+ processNames: item.processNames,
|
|
|
+ remark: ''
|
|
|
}
|
|
|
form.value.details.push(newDetail)
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+/** 提交按钮 */
|
|
|
+function submitForm() {
|
|
|
+ proxy.$refs['formRef'].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ if (form.value.id != null) {
|
|
|
+ updateReceipt(form.value).then((response) => {
|
|
|
+ proxy.$modal.msgSuccess('修改成功')
|
|
|
+ visible.value = false
|
|
|
+ getList.value()
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ addReceipt(form.value).then((response) => {
|
|
|
+ proxy.$modal.msgSuccess('新增成功')
|
|
|
+ visible.value = false
|
|
|
+ getList.value()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
/** 暴露给父组件的方法 */
|
|
|
defineExpose({
|
|
|
open
|