gaoluyang
12 小时以前 c7aebff7f6184b2d8da2669d2db5656e2bc09ec4
src/views/inventoryManagement/issueManagement/Record.vue
@@ -51,8 +51,6 @@
        <el-table-column fixed="right" label="操作" min-width="90" align="center">
          <template #default="scope">
            <el-button link type="primary" @click="showSubtractModal(scope.row)" :disabled="scope.row.unQualifiedUnLockedQuantity === 0 && scope.row.qualifiedUnLockedQuantity === 0">{{ actionButtonText }}</el-button>
            <el-button link type="primary" v-if="scope.row.unQualifiedUnLockedQuantity > 0 || scope.row.qualifiedUnLockedQuantity > 0" @click="showFrozenModal(scope.row)">冻结</el-button>
            <el-button link type="primary" v-if="scope.row.qualifiedLockedQuantity > 0 || scope.row.unQualifiedLockedQuantity > 0" @click="showThawModal(scope.row)">解冻</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -113,66 +111,6 @@
      </template>
    </el-dialog>
    <!-- 冻结/解冻弹框 -->
    <el-dialog
        v-model="isShowFrozenModal"
        :title="frozenDialogTitle"
        width="800"
        @close="closeFrozenModal"
    >
      <el-form label-width="140px" :model="frozenForm" label-position="top" ref="frozenFormRef">
        <el-form-item
            label="产品名称"
            prop="productModelId"
            :rules="[{ required: true, message: '请选择产品', trigger: 'change' }]"
        >
          <el-button type="primary" disabled>
            {{ frozenForm.productName ? frozenForm.productName : '选择产品' }}
          </el-button>
        </el-form-item>
        <el-form-item label="规格" prop="productModelName">
          <el-input v-model="frozenForm.model" disabled />
        </el-form-item>
        <el-form-item label="单位" prop="unit">
          <el-input v-model="frozenForm.unit" disabled />
        </el-form-item>
        <el-form-item
            label="库存类型"
            prop="type"
            :rules="[{ required: true, message: '请选择库存类型', trigger: 'change' }]"
        >
          <el-select v-model="frozenForm.type" placeholder="请选择库存类型" @change="handleFrozenTypeChange">
            <el-option
              label="合格库存"
              value="qualified"
              :disabled="frozenOperationType === 'frozen' ? currentRecord.qualifiedUnLockedQuantity <= 0 : currentRecord.qualifiedLockedQuantity <= 0"
            />
            <el-option
              label="不合格库存"
              value="unqualified"
              :disabled="frozenOperationType === 'frozen' ? currentRecord.unQualifiedUnLockedQuantity <= 0 : currentRecord.unQualifiedLockedQuantity <= 0"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="数量" prop="qualitity">
          <el-input-number v-model="frozenForm.qualitity" :step="1" :min="1" :max="frozenMaxQuality" style="width: 100%" />
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="frozenForm.remark" type="textarea" />
        </el-form-item>
      </el-form>
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" @click="handleFrozenSubmit">确认</el-button>
          <el-button @click="closeFrozenModal">取消</el-button>
        </div>
      </template>
    </el-dialog>
  </div>
</template>
@@ -190,14 +128,6 @@
} from "@/api/inventoryManagement/stockInventory.js";
import {
  subtractStockUnInventory
} from "@/api/inventoryManagement/stockUninventory.js";
import {
  frozenStockInventory,
  thawStockInventory
} from "@/api/inventoryManagement/stockInventory.js";
import {
  frozenStockUninventory,
  thawStockUninventory
} from "@/api/inventoryManagement/stockUninventory.js";
import { getCurrentDate } from "@/utils/index.js";
import {
@@ -234,47 +164,25 @@
// 是否显示领用/发货弹框
const isShowSubtractModal = ref(false)
// 是否显示冻结/解冻弹框
const isShowFrozenModal = ref(false)
// 冻结/解冻操作类型
const frozenOperationType = ref('frozen')
// 判断是否是成品(产品名称包含"成品")
const isFinishedProduct = computed(() => {
  return props.productName && props.productName.includes('成品')
  return props.productName && props.productName.includes('销售')
})
// 按钮文字:成品显示"发货",其他显示"领用"
const actionButtonText = computed(() => {
  return isFinishedProduct.value ? '发货' : '领用'
  return isFinishedProduct.value ? '出库' : '领用'
})
// 弹框标题
const dialogTitle = computed(() => {
  return isFinishedProduct.value ? '发货' : '领用'
})
// 冻结/解冻弹框标题
const frozenDialogTitle = computed(() => {
  return frozenOperationType.value === 'frozen' ? '冻结' : '解冻'
  return isFinishedProduct.value ? '出库' : '领用'
})
// 领用/发货表单
const subtractFormRef = ref(null)
const subtractForm = ref({
  productId: undefined,
  productModelId: undefined,
  productName: "",
  model: "",
  unit: "",
  type: "",
  qualitity: 0,
  remark: '',
})
// 冻结/解冻表单
const frozenFormRef = ref(null)
const frozenForm = ref({
  productId: undefined,
  productModelId: undefined,
  productName: "",
@@ -292,25 +200,6 @@
    max = currentRecord.value.qualifiedUnLockedQuantity ? currentRecord.value.qualifiedUnLockedQuantity : 0;
  } else {
    max = currentRecord.value.unQualifiedUnLockedQuantity ? currentRecord.value.unQualifiedUnLockedQuantity : 0;
  }
  return Math.max(max, 1);
})
// 冻结/解冻最大数量
const frozenMaxQuality = computed(() => {
  let max = 0;
  if (frozenOperationType.value === 'frozen') {
    if (frozenForm.value.type === 'qualified') {
      max = currentRecord.value.qualifiedUnLockedQuantity ? currentRecord.value.qualifiedUnLockedQuantity : 0;
    } else {
      max = currentRecord.value.unQualifiedUnLockedQuantity ? currentRecord.value.unQualifiedUnLockedQuantity : 0;
    }
  } else {
    if (frozenForm.value.type === 'qualified') {
      max = currentRecord.value.qualifiedLockedQuantity ? currentRecord.value.qualifiedLockedQuantity : 0;
    } else {
      max = currentRecord.value.unQualifiedLockedQuantity ? currentRecord.value.unQualifiedLockedQuantity : 0;
    }
  }
  return Math.max(max, 1);
})
@@ -405,11 +294,6 @@
  subtractForm.value.qualitity = 0;
}
// 冻结类型改变
const handleFrozenTypeChange = () => {
  frozenForm.value.qualitity = 0;
}
// 提交领用/发货
const handleSubtractSubmit = () => {
  proxy.$refs["subtractFormRef"].validate(valid => {
@@ -430,91 +314,6 @@
          proxy.$modal.msgSuccess("提交成功");
          getList();
        })
      }
    }
  })
}
// 点击冻结
const showFrozenModal = (row) => {
  currentRecord.value = row
  frozenOperationType.value = 'frozen'
  frozenForm.value = {
    ...row,
    type: '',
    qualitity: 0,
    remark: '',
  }
  isShowFrozenModal.value = true
}
// 点击解冻
const showThawModal = (row) => {
  currentRecord.value = row
  frozenOperationType.value = 'thaw'
  frozenForm.value = {
    ...row,
    type: '',
    qualitity: 0,
    remark: '',
  }
  isShowFrozenModal.value = true
}
// 关闭冻结/解冻弹框
const closeFrozenModal = () => {
  frozenForm.value = {
    productId: undefined,
    productModelId: undefined,
    productName: "",
    model: "",
    unit: "",
    type: "",
    qualitity: 0,
    remark: '',
  }
  isShowFrozenModal.value = false
}
// 提交冻结/解冻
const handleFrozenSubmit = () => {
  proxy.$refs["frozenFormRef"].validate(valid => {
    if (valid) {
      if (!frozenForm.value.productModelId) {
        proxy.$modal.msgError("请选择产品");
        return;
      }
      const isQualified = frozenForm.value.type === 'qualified'
      const isFrozen = frozenOperationType.value === 'frozen'
      if (isQualified) {
        if (isFrozen) {
          frozenStockInventory(frozenForm.value).then(res => {
            isShowFrozenModal.value = false;
            proxy.$modal.msgSuccess("冻结成功");
            getList();
          })
        } else {
          thawStockInventory(frozenForm.value).then(res => {
            isShowFrozenModal.value = false;
            proxy.$modal.msgSuccess("解冻成功");
            getList();
          })
        }
      } else {
        if (isFrozen) {
          frozenStockUninventory(frozenForm.value).then(res => {
            isShowFrozenModal.value = false;
            proxy.$modal.msgSuccess("冻结成功");
            getList();
          })
        } else {
          thawStockUninventory(frozenForm.value).then(res => {
            isShowFrozenModal.value = false;
            proxy.$modal.msgSuccess("解冻成功");
            getList();
          })
        }
      }
    }
  })