|
@@ -0,0 +1,159 @@
|
|
|
+<template>
|
|
|
+ <el-drawer title="外协单信息" :with-header="false" v-model="visible" direction="rtl" size="100%">
|
|
|
+ <div class="form-container column-container">
|
|
|
+ <div class="form-btns-container">
|
|
|
+ <span class="title-label">
|
|
|
+ <el-icon><Document /></el-icon>
|
|
|
+ <span>收回单信息</span>
|
|
|
+ </span>
|
|
|
+ <div class="close-btn" @click="cancel">
|
|
|
+ <i class="fa fa-times" aria-hidden="true" />
|
|
|
+ <!-- <span>关闭</span> -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-form ref="formRef" class="master-container" :model="form" v-loading="loading" label-width="120px">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="单据号" prop="formCode">
|
|
|
+ <el-input v-model="form.formCode" readonly />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="表单日期" prop="formDate">
|
|
|
+ <el-date-picker
|
|
|
+ readonly
|
|
|
+ v-model="form.formDate"
|
|
|
+ type="date"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="备注" prop="remark">
|
|
|
+ <el-input v-model="form.remark" readonly />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <!-- 渲染数据区 -->
|
|
|
+ <div class="form-details-btns-container">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ icon="Plus"
|
|
|
+ @click="handleShowDialogOutSourceDetails"
|
|
|
+ v-hasPermi="['business:outsource:add']"
|
|
|
+ >
|
|
|
+ 添加收回明细
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <div class="el-table-container">
|
|
|
+ <div class="el-table-inner-container">
|
|
|
+ <el-table v-loading="loading" :data="form.details" size="small" border height="100%">
|
|
|
+ <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="form.packagingMethod === '0' ? '箱号' : '原箱号'"
|
|
|
+ align="center"
|
|
|
+ prop="originalCarrier"
|
|
|
+ width="320"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ v-if="form.packagingMethod === '1'"
|
|
|
+ label="新箱号"
|
|
|
+ align="center"
|
|
|
+ prop="new_carrier"
|
|
|
+ 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" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="备注" align="center" prop="remark" />
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 外协商选择 -->
|
|
|
+ <dialog-outsource-details
|
|
|
+ ref="dialogOutsourceDetailsRef"
|
|
|
+ :multiple-selected="handleMultipleSelectedOutsourceDetails"
|
|
|
+ />
|
|
|
+ </el-drawer>
|
|
|
+</template>
|
|
|
+<script setup>
|
|
|
+import { getReceipt } from '@/api/business/returnReceipt'
|
|
|
+import dialogOutsourceDetails from './DialogOutsourceDetails'
|
|
|
+const { proxy } = getCurrentInstance()
|
|
|
+/** 表单抽屉 页变量 */
|
|
|
+const loading = ref(false)
|
|
|
+const visible = 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
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+/** 取消按钮 */
|
|
|
+const cancel = () => {
|
|
|
+ visible.value = false
|
|
|
+ reset()
|
|
|
+}
|
|
|
+
|
|
|
+/** 表单重置 */
|
|
|
+const reset = () => {
|
|
|
+ form.value = {
|
|
|
+ id: null,
|
|
|
+ tenantId: '0',
|
|
|
+ formCode: '',
|
|
|
+ formDate: proxy.parseTime(new Date(), '{y}-{m}-{d}'),
|
|
|
+ supplierId: '0',
|
|
|
+ supplierName: '',
|
|
|
+ remark: '',
|
|
|
+ details: []
|
|
|
+ }
|
|
|
+ proxy.resetForm('formRef')
|
|
|
+}
|
|
|
+/***************************** 外协明细对话框相关 *****************************/
|
|
|
+// 打开外协明细选择对话框
|
|
|
+const handleShowDialogOutSourceDetails = () => {
|
|
|
+ const dayworkIds = form.value.details.map((item) => item.dayworkId)
|
|
|
+ proxy.$refs.dialogProductsRef.open(dayworkIds)
|
|
|
+}
|
|
|
+// 外协明细选择带回
|
|
|
+const handleMultipleSelectedOutsourceDetails = (selection) => {
|
|
|
+ selection.forEach((item) => {
|
|
|
+ const newDetail = {
|
|
|
+ lotId: item.lotId,
|
|
|
+ lotCode: item.lotCode,
|
|
|
+ dayworkId: item.id,
|
|
|
+ productId: item.productId,
|
|
|
+ productDescription: item.productDescription,
|
|
|
+ productNum: 0,
|
|
|
+ receiptNum: 0,
|
|
|
+ processNames: '',
|
|
|
+ remark: item.remark
|
|
|
+ }
|
|
|
+ form.value.details.push(newDetail)
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+/** 暴露给父组件的方法 */
|
|
|
+defineExpose({
|
|
|
+ open
|
|
|
+})
|
|
|
+</script>
|