From 41c7dd199f1919a01dfc5e04f62359ca8bc3cb2c Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 12 九月 2026 12:43:32 +0800
Subject: [PATCH] feat: 库存管理三表单与详情页签分组、采购台账分栏、油品联动与电话校验、冻结解冻修复
---
src/views/inventoryManagement/stockManagement/New.vue | 175 +++++++++++++++++++++++++++++++---------------------------
1 files changed, 93 insertions(+), 82 deletions(-)
diff --git a/src/views/inventoryManagement/stockManagement/New.vue b/src/views/inventoryManagement/stockManagement/New.vue
index e55de75..a5afaba 100644
--- a/src/views/inventoryManagement/stockManagement/New.vue
+++ b/src/views/inventoryManagement/stockManagement/New.vue
@@ -2,81 +2,110 @@
<div>
<el-dialog v-model="isShow"
title="鏂板搴撳瓨"
- width="800"
+ width="60%"
@close="closeModal">
<el-form label-width="140px"
:model="formState"
label-position="top"
ref="formRef">
- <el-form-item label="浜у搧鍚嶇О"
- prop="productModelId"
- :rules="[
+ <el-row :gutter="30">
+ <el-col :span="24">
+ <el-form-item label="浜у搧鍚嶇О"
+ prop="productModelId"
+ :rules="[
{
required: true,
message: '璇烽�夋嫨浜у搧',
trigger: 'change',
}
]">
- <el-button type="primary"
- @click="showProductSelectDialog = true">
- {{ formState.productName ? formState.productName : '閫夋嫨浜у搧' }}
- </el-button>
- </el-form-item>
- <el-form-item label="瑙勬牸"
- prop="productModelName">
- <el-input v-model="formState.productModelName"
- disabled />
- </el-form-item>
- <el-form-item label="鍗曚綅"
- prop="unit">
- <el-input v-model="formState.unit"
- disabled />
- </el-form-item>
- <el-form-item label="搴撳瓨绫诲瀷"
- prop="type"
- :rules="[
+ <el-button type="primary"
+ @click="showProductSelectDialog = true">
+ {{ formState.productName ? formState.productName : '閫夋嫨浜у搧' }}
+ </el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="瑙勬牸"
+ prop="productModelName">
+ <el-input v-model="formState.productModelName"
+ disabled />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍗曚綅"
+ prop="unit">
+ <el-input v-model="formState.unit"
+ disabled />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="搴撳瓨绫诲瀷"
+ prop="type"
+ :rules="[
{
required: true,
message: '璇烽�夋嫨搴撳瓨绫诲瀷',
trigger: 'change',
}
]">
- <el-select v-model="formState.type"
- placeholder="璇烽�夋嫨搴撳瓨绫诲瀷">
- <el-option label="鍚堟牸搴撳瓨"
- value="qualified" />
- <el-option label="涓嶅悎鏍煎簱瀛�"
- value="unqualified" />
- </el-select>
- </el-form-item>
- <el-form-item label="搴撳瓨鏁伴噺"
- prop="qualitity">
- <el-input-number v-model="formState.qualitity"
- :step="0.01"
- :min="0.01"
- :precision="2"
- style="width: 100%" />
- </el-form-item>
- <el-form-item label="鎵瑰彿"
- prop="batchNo">
- <el-input v-model="formState.batchNo"
- placeholder="璇疯緭鍏ユ壒鍙�" />
- </el-form-item>
- <el-form-item v-if="formState.type === 'qualified'"
- label="搴撳瓨棰勮鏁伴噺"
- prop="warnNum">
- <el-input-number v-model="formState.warnNum"
- :step="0.01"
- :min="0"
- :max="formState.qualitity"
- :precision="2"
- style="width: 100%" />
- </el-form-item>
- <el-form-item label="澶囨敞"
- prop="remark">
- <el-input v-model="formState.remark"
- type="textarea" />
- </el-form-item>
+ <el-select v-model="formState.type"
+ placeholder="璇烽�夋嫨搴撳瓨绫诲瀷"
+ style="width: 100%">
+ <el-option label="鍚堟牸搴撳瓨"
+ value="qualified" />
+ <el-option label="涓嶅悎鏍煎簱瀛�"
+ value="unqualified" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="搴撳瓨鏁伴噺"
+ prop="qualitity">
+ <el-input-number v-model="formState.qualitity"
+ :step="0.01"
+ :min="0.01"
+ :precision="2"
+ style="width: 100%" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col v-if="formState.type === 'qualified'"
+ :span="12">
+ <el-form-item label="搴撳瓨棰勮鏁伴噺"
+ prop="warnNum">
+ <el-input-number v-model="formState.warnNum"
+ :step="0.01"
+ :min="0"
+ :max="formState.qualitity"
+ :precision="2"
+ style="width: 100%" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="formState.type === 'qualified' ? 12 : 24">
+ <el-form-item label="鎵瑰彿"
+ prop="batchNo">
+ <el-input v-model="formState.batchNo"
+ placeholder="璇疯緭鍏ユ壒鍙�"
+ style="width: 100%" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="24">
+ <el-form-item label="澶囨敞"
+ prop="remark">
+ <el-input v-model="formState.remark"
+ type="textarea"
+ style="width: 100%" />
+ </el-form-item>
+ </el-col>
+ </el-row>
</el-form>
<!-- 浜у搧閫夋嫨寮圭獥 -->
<ProductSelectDialog v-model="showProductSelectDialog"
@@ -114,8 +143,7 @@
const emit = defineEmits(["update:visible", "completed"]);
- // 鍝嶅簲寮忔暟鎹紙鏇夸唬閫夐」寮忕殑 data锛�
- const formState = ref({
+ const buildEmptyForm = () => ({
productId: undefined,
productModelId: undefined,
productName: "",
@@ -127,6 +155,8 @@
warnNum: 0,
remark: "",
});
+
+ const formState = ref(buildEmptyForm());
const isShow = computed({
get() {
@@ -152,19 +182,8 @@
let { proxy } = getCurrentInstance();
const closeModal = () => {
- // 閲嶇疆琛ㄥ崟鏁版嵁
- formState.value = {
- productId: undefined,
- productModelId: undefined,
- productName: "",
- productModelName: "",
- unit: "",
- type: undefined,
- qualitity: 0,
- batchNo: null,
- warnNum: 0,
- remark: "",
- };
+ proxy.resetForm("formRef");
+ formState.value = buildEmptyForm();
isShow.value = false;
};
@@ -186,29 +205,21 @@
const handleSubmit = () => {
proxy.$refs["formRef"].validate(valid => {
if (valid) {
- // 楠岃瘉鏄惁閫夋嫨浜嗕骇鍝佸拰瑙勬牸
+ // 楠岃瘉鏄惁閫夋嫨浜嗕骇鍝�
if (!formState.value.productModelId) {
proxy.$modal.msgError("璇烽�夋嫨浜у搧");
return;
}
- if (!formState.value.productModelId) {
- proxy.$modal.msgError("璇烽�夋嫨瑙勬牸");
- return;
- }
if (formState.value.type === "qualified") {
addStockInRecordOnly(formState.value).then(res => {
- // 鍏抽棴妯℃�佹
isShow.value = false;
- // 鍛婄煡鐖剁粍浠跺凡瀹屾垚
emit("completed");
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
});
} else {
formState.value.warnNum = 0;
createStockUnInventory(formState.value).then(res => {
- // 鍏抽棴妯℃�佹
isShow.value = false;
- // 鍛婄煡鐖剁粍浠跺凡瀹屾垚
emit("completed");
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
});
--
Gitblit v1.9.3