| | |
| | | :label="operationType === 'frozen' ? '冻结数量:' : '解冻数量:'" |
| | | prop="lockedQuantity" |
| | | > |
| | | <el-input-number v-model="formState.lockedQuantity" :step="1" :min="maxCount > 0 ? 1 : 0" precision="0" style="width: 100%" :max="maxCount" :disabled="maxCount < 1" /> |
| | | <el-input-number v-model="formState.lockedQuantity" :step="0.01" :min="0" precision="2" style="width: 100%" :max="maxCount" :disabled="maxCount < 1" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import {ref, computed, getCurrentInstance, onMounted} from "vue"; |
| | | import {ref, computed, watch, getCurrentInstance, onMounted} from "vue"; |
| | | import {frozenStockInventory, thawStockInventory} from "@/api/inventoryManagement/stockInventory.js"; |
| | | import {frozenStockUninventory, thawStockUninventory} from "@/api/inventoryManagement/stockUninventory.js"; |
| | | |
| | |
| | | lockedQuantity: undefined, |
| | | }); |
| | | |
| | | const isShow = computed({ |
| | | get() { |
| | | return props.visible; |
| | | }, |
| | | set(val) { |
| | | emit('update:visible', val); |
| | | }, |
| | | }); |
| | | // 弹窗开关用本地状态管理:父级打开时同步为 true,本地关闭后通知父级 |
| | | const isShow = ref(false); |
| | | |
| | | watch( |
| | | () => props.visible, |
| | | val => { |
| | | isShow.value = val; |
| | | }, |
| | | { immediate: true } |
| | | ); |
| | | |
| | | const requestClose = () => { |
| | | isShow.value = false; |
| | | emit('update:visible', false); |
| | | }; |
| | | |
| | | let { proxy } = getCurrentInstance() |
| | | |
| | |
| | | lockedQuantity: undefined, |
| | | type: undefined, |
| | | }; |
| | | isShow.value = false; |
| | | requestClose(); |
| | | }; |
| | | |
| | | const maxCount = computed(() => { |
| | |
| | | } |
| | | |
| | | const handleSubmit = () => { |
| | | proxy.$refs["formRef"].validate(valid => { |
| | | if (valid) { |
| | | const data = Object.assign({}, formState.value); |
| | | if (formState.value.type === 'qualified') { |
| | | data.id = props.record.qualifiedId; |
| | | // 冻结 |
| | | if (props.operationType === 'frozen') { |
| | | frozenStockInventory(data).then(res => { |
| | | if (res.code === 200) { |
| | | // 关闭模态框 |
| | | isShow.value = false; |
| | | // 告知父组件已完成 |
| | | emit('completed'); |
| | | proxy.$modal.msgSuccess("提交成功"); |
| | | } else { |
| | | proxy.$modal.msgError(res.msg); |
| | | } |
| | | }) |
| | | } else { |
| | | thawStockInventory(data).then(res => { |
| | | if (res.code === 200) { |
| | | // 关闭模态框 |
| | | isShow.value = false; |
| | | // 告知父组件已完成 |
| | | emit('completed'); |
| | | proxy.$modal.msgSuccess("提交成功"); |
| | | } else { |
| | | proxy.$modal.msgError(res.msg); |
| | | } |
| | | }) |
| | | } |
| | | // 不依赖表单引用,直接手动校验 |
| | | if (!formState.value.type) { |
| | | proxy.$modal.msgError("请选择库存类型"); |
| | | return; |
| | | } |
| | | const qty = Number(formState.value.lockedQuantity); |
| | | if (!formState.value.lockedQuantity || qty <= 0) { |
| | | proxy.$modal.msgError( |
| | | `请输入${props.operationType === 'frozen' ? '冻结' : '解冻'}数量` |
| | | ); |
| | | return; |
| | | } |
| | | if (qty > maxCount.value) { |
| | | proxy.$modal.msgError(`数量不能超过${maxCount.value}`); |
| | | return; |
| | | } |
| | | |
| | | const data = Object.assign({}, formState.value); |
| | | const doSubmit = (api, id) => { |
| | | data.id = id; |
| | | api(data).then(res => { |
| | | if (res.code === 200) { |
| | | requestClose(); |
| | | emit('completed'); |
| | | proxy.$modal.msgSuccess("提交成功"); |
| | | } else { |
| | | data.id = props.record.unQualifiedId; |
| | | if (props.operationType === 'frozen') { |
| | | frozenStockUninventory(data).then(res => { |
| | | if (res.code === 200) { |
| | | // 关闭模态框 |
| | | isShow.value = false; |
| | | // 告知父组件已完成 |
| | | emit('completed'); |
| | | proxy.$modal.msgSuccess("提交成功"); |
| | | } else { |
| | | proxy.$modal.msgError(res.msg); |
| | | } |
| | | }) |
| | | } else { |
| | | thawStockUninventory(data).then(res => { |
| | | if (res.code === 200) { |
| | | // 关闭模态框 |
| | | isShow.value = false; |
| | | // 告知父组件已完成 |
| | | emit('completed'); |
| | | proxy.$modal.msgSuccess("提交成功"); |
| | | } else { |
| | | proxy.$modal.msgError(res.msg); |
| | | } |
| | | }) |
| | | } |
| | | proxy.$modal.msgError(res.msg); |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | }; |
| | | |
| | | if (formState.value.type === 'qualified') { |
| | | doSubmit( |
| | | props.operationType === 'frozen' ? frozenStockInventory : thawStockInventory, |
| | | props.record.qualifiedId |
| | | ); |
| | | } else { |
| | | doSubmit( |
| | | props.operationType === 'frozen' ? frozenStockUninventory : thawStockUninventory, |
| | | props.record.unQualifiedId |
| | | ); |
| | | } |
| | | }; |
| | | |
| | | onMounted(() => { |