Sfoglia il codice sorgente

refactor(forecast-form): 修改品牌字段为手动输入并添加库存验证

yz 1 settimana fa
parent
commit
4c013a2b08

+ 4 - 25
src/components/forecast-form/forecast-form-avue.vue

@@ -19,29 +19,7 @@
           />
         </template>
 
-        <!-- 品牌选择器插槽 -->
-        <template #brandId>
-          <el-select
-            v-model="formData.brandId"
-            placeholder="请选择品牌"
-            :disabled="isEdit"
-            filterable
-            remote
-            :remote-method="remoteBrandSearch"
-            :loading="brandLoading"
-            @change="handleBrandChange"
-            style="width: 100%"
-          >
-            <el-option
-              v-for="item in brandOptions"
-              :key="item.id"
-              :label="item.name"
-              :value="item.id"
-            >
-              <span>{{ item.code }} - {{ item.name }}</span>
-            </el-option>
-          </el-select>
-        </template>
+
 
         <!-- 物料选择器插槽 -->
         <template #itemId>
@@ -237,6 +215,7 @@ export default {
           itemName: '',
           itemSpecs: '',
           forecastQuantity: 1,
+          currentInventory: '',
           approvalStatus: '',
           approvalRemark: ''
         }
@@ -298,12 +277,12 @@ export default {
         this.formData.itemName = selectedItem.name
         this.formData.itemSpecs = selectedItem.specs || ''
         // 获取当前库存
-        // this.getCurrentInventory(itemId)
+        this.getCurrentInventory(itemId)
       } else {
         this.formData.itemCode = ''
         this.formData.itemName = ''
         this.formData.itemSpecs = ''
-        // this.currentInventory = null
+        this.currentInventory = null
       }
     },
 

+ 38 - 10
src/components/forecast-form/form-option.js

@@ -114,16 +114,15 @@ export const forecastFormOption = {
       prop: 'product',
       column: [
         {
-          label: '品牌',
+          label: '品牌ID',
           prop: 'brandId',
-          type: 'select',
+          type: 'input',
           span: 12,
-          slot: true,
-          placeholder: '请选择品牌',
+          placeholder: '请输入品牌ID',
           rules: [{
             required: true,
-            message: '请选择品牌',
-            trigger: 'change'
+            message: '请输入品牌ID',
+            trigger: 'blur'
           }]
         },
         {
@@ -131,16 +130,24 @@ export const forecastFormOption = {
           prop: 'brandCode',
           type: 'input',
           span: 12,
-          placeholder: '选择品牌后自动填充',
-          disabled: true
+          placeholder: '请输入品牌编码',
+          rules: [{
+            required: true,
+            message: '请输入品牌编码',
+            trigger: 'blur'
+          }]
         },
         {
           label: '品牌名称',
           prop: 'brandName',
           type: 'input',
           span: 12,
-          placeholder: '选择品牌后自动填充',
-          disabled: true
+          placeholder: '请输入品牌名称',
+          rules: [{
+            required: true,
+            message: '请输入品牌名称',
+            trigger: 'blur'
+          }]
         },
         {
           label: '物料',
@@ -180,6 +187,27 @@ export const forecastFormOption = {
           disabled: true
         },
         {
+          label: '当前库存',
+          prop: 'currentInventory',
+          type: 'number',
+          span: 12,
+          placeholder: '请输入当前库存',
+          min: 0,
+          precision: 0,
+          step: 1,
+          controlsPosition: 'right',
+          rules: [{
+            required: true,
+            message: '请输入当前库存',
+            trigger: 'blur'
+          }, {
+            type: 'number',
+            min: 0,
+            message: '当前库存不能小于0',
+            trigger: 'blur'
+          }]
+        },
+        {
           label: '预测数量',
           prop: 'forecastQuantity',
           type: 'number',

+ 9 - 25
src/components/forecast-form/index.vue

@@ -72,35 +72,19 @@
           <h3 class="section-title">产品信息</h3>
           <el-row :gutter="20">
             <el-col :span="12">
-              <el-form-item label="品牌" prop="brandId">
-                <el-select
+              <el-form-item label="品牌ID" prop="brandId">
+                <el-input
                   v-model="formData.brandId"
-                  placeholder="请选择品牌"
-                  :disabled="isEdit"
-                  filterable
-                  remote
-                  :remote-method="remoteBrandSearch"
-                  :loading="brandLoading"
-                  @change="handleBrandChange"
+                  placeholder="请输入品牌ID"
                   style="width: 100%"
-                >
-                  <el-option
-                    v-for="item in brandOptions"
-                    :key="item.id"
-                    :label="item.name"
-                    :value="item.id"
-                  >
-                    <span>{{ item.code }} - {{ item.name }}</span>
-                  </el-option>
-                </el-select>
+                ></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="品牌编码">
+              <el-form-item label="品牌编码" prop="brandCode">
                 <el-input
                   v-model="formData.brandCode"
-                  placeholder="选择品牌后自动填充"
-                  disabled
+                  placeholder="请输入品牌编码"
                   style="width: 100%"
                 ></el-input>
               </el-form-item>
@@ -108,11 +92,10 @@
           </el-row>
           <el-row :gutter="20">
             <el-col :span="12">
-              <el-form-item label="品牌名称">
+              <el-form-item label="品牌名称" prop="brandName">
                 <el-input
                   v-model="formData.brandName"
-                  placeholder="选择品牌后自动填充"
-                  disabled
+                  placeholder="请输入品牌名称"
                   style="width: 100%"
                 ></el-input>
               </el-form-item>
@@ -349,6 +332,7 @@ export default {
           itemName: '', // 物料名称
           itemSpecs: '', // 物料规格
           forecastQuantity: '', // 预测数量
+          currentInventory: '', // 当前库存
           approvalStatus: 0, // 审批状态
           approvalRemark: '' // 审批备注
         }

+ 9 - 1
src/constants/forecast.js

@@ -228,7 +228,15 @@ export const FORECAST_FORM_RULES = {
   ],
   /** 品牌ID验证规则 */
   brandId: [
-    { required: true, message: '请选择品牌', trigger: 'change' }
+    { required: true, message: '请输入品牌ID', trigger: 'blur' }
+  ],
+  /** 品牌编码验证规则 */
+  brandCode: [
+    { required: true, message: '请输入品牌编码', trigger: 'blur' }
+  ],
+  /** 品牌名称验证规则 */
+  brandName: [
+    { required: true, message: '请输入品牌名称', trigger: 'blur' }
   ],
   /** 物料ID验证规则 */
   itemId: [