瀏覽代碼

fix: 表单权限调整

jiaxing.liao 2 周之前
父節點
當前提交
16b8e50913
共有 1 個文件被更改,包括 152 次插入46 次删除
  1. 152 46
      src/pages/excel/ConfigDrawer.vue

+ 152 - 46
src/pages/excel/ConfigDrawer.vue

@@ -64,8 +64,12 @@
         <!-- 产品类别 -->
         <el-col :span="12">
           <el-form-item label="产品类别" name="product_category">
+            <!-- 非空值,或者为制造bom时 -->
             <el-select
-              :disabled="!!originFormData?.erp_code && !isEmpty"
+              :disabled="
+                (!!originFormData?.erp_code && !isEmpty) ||
+                (!!originFormData?.erp_code && type === '2')
+              "
               v-model="formData.product_category"
               placeholder="请选择"
             >
@@ -87,6 +91,7 @@
           <el-form-item label="制造工艺" name="process">
             <el-select
               v-model="formData.process"
+              :disabled="!!originFormData?.erp_code"
               placeholder="请选择"
             >
               <el-option
@@ -105,14 +110,22 @@
         <!-- 材料牌号 -->
         <el-col :span="12">
           <el-form-item label="材料牌号" name="material_grade">
-            <el-input placeholder="请输入" v-model="formData.material_grade" />
+            <el-input
+              :disabled="!!originFormData?.erp_code"
+              placeholder="请输入"
+              v-model="formData.material_grade"
+            />
           </el-form-item>
         </el-col>
 
         <!-- 材料供应商 -->
         <el-col :span="12">
           <el-form-item label="材料供应商" name="supplier">
-            <el-input placeholder="请输入" v-model="formData.supplier" />
+            <el-input
+              :disabled="!!originFormData?.erp_code && type === '2'"
+              placeholder="请输入"
+              v-model="formData.supplier"
+            />
           </el-form-item>
         </el-col>
 
@@ -120,6 +133,7 @@
         <el-col :span="12"
           ><el-form-item label="标准用量" name="qty">
             <el-input-number
+              :disabled="!!originFormData?.erp_code && type === '2'"
               class="inline-block w-full!"
               placeholder="请输入"
               v-model="formData.qty"
@@ -128,10 +142,13 @@
         </el-col>
 
         <!-- 制造区域 -->
-        <el-col :span="12" v-if="type == '2'">
+        <el-col :span="12">
           <el-form-item label="制造区域" prop="manufacture_area">
             <el-select
-              :disabled="!!originFormData?.erp_code && !isEmpty"
+              :disabled="
+                (!!originFormData?.erp_code && !isEmpty) ||
+                (!!originFormData?.erp_code && type === '1')
+              "
               v-model="formData.manufacture_area"
               placeholder="请选择"
             >
@@ -149,10 +166,13 @@
         </el-col>
 
         <!-- 制造单元 -->
-        <el-col :span="12" v-if="type == '2'">
+        <el-col :span="12">
           <el-form-item label="制造单元" prop="manufacture_report">
             <el-select
-              :disabled="!!originFormData?.erp_code && !isEmpty"
+              :disabled="
+                (!!originFormData?.erp_code && !isEmpty) ||
+                (!!originFormData?.erp_code && type === '1')
+              "
               v-model="formData.manufacture_report"
               placeholder="请选择"
             >
@@ -172,7 +192,7 @@
         <!-- NK零件名称 -->
         <el-col :span="12">
           <el-form-item label="NK零件名称" prop="part_name">
-            <el-input placeholder="请输入" v-model="formData.part_name" />
+            <el-input placeholder="请输入" :disabled="!!originFormData?.erp_code" v-model="formData.part_name" />
           </el-form-item>
         </el-col>
 
@@ -188,14 +208,20 @@
               <el-button
                 type="text"
                 :icon="CirclePlus"
-                :disabled="layerIndex === 1 || (!!originFormData?.erp_code && !isEmpty) || erpCodeDisabled"
+                :disabled="
+                  layerIndex === 1 ||
+                  (!!originFormData?.erp_code && !isEmpty) ||
+                  erpCodeDisabled
+                "
                 @click="openRecomendModal"
               >
                 推荐
               </el-button>
               <el-button
                 type="text"
-                :disabled="(!!originFormData?.erp_code && !isEmpty) || erpCodeDisabled"
+                :disabled="
+                  (!!originFormData?.erp_code && !isEmpty) || erpCodeDisabled
+                "
                 @click="handleGenratorErpCode"
               >
                 生成
@@ -261,15 +287,24 @@
         <!-- 配置比 -->
         <el-col :span="12" v-if="type == '1'">
           <el-form-item label="配置比" name="config_ratio">
-            <el-input placeholder="请输入" v-model="formData.config_ratio" />
+            <el-input-number
+              placeholder="请输入"
+              v-model="formData.config_ratio"
+              style="width: 100%;"
+            >
+              <template #suffix>
+                <span>%</span>
+              </template>
+            </el-input-number>
           </el-form-item>
         </el-col>
 
         <!-- 长宽高 -->
-        <el-row :gutter="8" v-if="type == '1'">
+        <el-row :gutter="8">
           <el-col :span="8"
             ><el-form-item label="长" name="length">
               <el-input-number
+                :disabled="!!originFormData?.erp_code && type === '2'"
                 class="inline-block w-full!"
                 placeholder="请输入"
                 v-model="formData.length"
@@ -279,6 +314,7 @@
           <el-col :span="8">
             <el-form-item label="宽" name="width">
               <el-input-number
+                :disabled="!!originFormData?.erp_code && type === '2'"
                 class="inline-block w-full!"
                 placeholder="请输入"
                 v-model="formData.width"
@@ -287,6 +323,7 @@
           <el-col :span="8">
             <el-form-item label="高" name="height">
               <el-input-number
+                :disabled="!!originFormData?.erp_code && type === '2'"
                 class="inline-block w-full!"
                 placeholder="请输入"
                 v-model="formData.height"
@@ -297,28 +334,41 @@
         <!-- 颜色 -->
         <el-col :span="12">
           <el-form-item label="颜色" name="color">
-            <el-input placeholder="请输入" v-model="formData.color" />
+            <el-input
+              :disabled="!!originFormData?.erp_code && type === '2'"
+              placeholder="请输入"
+              v-model="formData.color"
+            />
           </el-form-item>
         </el-col>
 
         <!-- 光泽度 -->
         <el-col :span="12">
           <el-form-item label="光泽度" name="color_config">
-            <el-input placeholder="请输入" v-model="formData.color_config" />
+            <el-input
+              :disabled="!!originFormData?.erp_code && type === '2'"
+              placeholder="请输入"
+              v-model="formData.color_config"
+            />
           </el-form-item>
         </el-col>
 
         <!-- 计量单位 -->
         <el-col :span="12"
           ><el-form-item label="计量单位" name="unit">
-            <el-input placeholder="请输入" v-model="formData.unit" />
+            <el-input
+              :disabled="!!originFormData?.erp_code && type === '2'"
+              placeholder="请输入"
+              v-model="formData.unit"
+            />
           </el-form-item>
         </el-col>
 
         <!-- 工艺消耗 -->
-        <el-col :span="12" v-if="type == '2'">
+        <el-col :span="12">
           <el-form-item label="工艺消耗" name="technology_consume">
             <el-input-number
+              :disabled="!!originFormData?.erp_code && type === '1'"
               class="inline-block w-full!"
               placeholder="请输入"
               v-model="formData.technology_consume"
@@ -327,18 +377,23 @@
         </el-col>
 
         <!-- 不良率% -->
-        <el-col :span="12" v-if="type == '2'">
+        <el-col :span="12">
           <el-form-item label="不良率%" name="nonperform_rate">
             <el-input-number
+              :disabled="!!originFormData?.erp_code && type === '1'"
               class="inline-block w-full!"
               placeholder="请输入"
               v-model="formData.nonperform_rate"
-            />
+            >
+              <template #suffix>
+                <span>%</span>
+              </template>
+            </el-input-number>
           </el-form-item>
         </el-col>
 
         <!-- 制造设备类(组) -->
-        <el-col :span="12">
+        <el-col :span="12" v-if="type == '2'">
           <el-form-item label="制造设备类(组)" prop="manufature_equip">
             <el-input
               placeholder="请输入"
@@ -348,7 +403,7 @@
         </el-col>
 
         <!-- 模具/工装治具 -->
-        <el-col :span="12">
+        <el-col :span="12" v-if="type == '2'">
           <el-form-item label="模具/工装治具" prop="moldtooling_fixture">
             <el-input
               placeholder="请输入"
@@ -358,9 +413,11 @@
         </el-col>
 
         <!-- 模腔数/取数(pcs) -->
-        <el-col :span="12">
+        <el-col :span="12" v-if="type == '2'">
           <el-form-item label="模腔数/取数(pcs)" prop="production_cycle">
-            <el-input
+            <el-input-number
+              :step="1"
+              :precision="0"
               placeholder="请输入"
               v-model="formData.production_cycle"
             />
@@ -368,35 +425,43 @@
         </el-col>
 
         <!-- 制造周期(S) -->
-        <el-col :span="12">
+        <el-col :span="12" v-if="type == '2'">
           <el-form-item label="制造周期(S)" prop="cavities">
-            <el-input placeholder="请输入" v-model="formData.cavities" />
+            <el-input-number placeholder="请输入" v-model="formData.cavities" />
           </el-form-item>
         </el-col>
 
         <!-- 持台人数 -->
-        <el-col :span="12">
+        <el-col :span="12" v-if="type == '2'">
           <el-form-item label="持台人数" prop="holding_number">
-            <el-input placeholder="请输入" v-model="formData.holding_number" />
+            <el-input-number
+              :step="1"
+              :precision="0"
+              placeholder="请输入"
+              v-model="formData.holding_number"
+            />
           </el-form-item>
         </el-col>
 
         <!-- 单件节拍(S) -->
-        <el-col :span="12">
+        <el-col :span="12" v-if="type == '2'">
           <el-form-item label="单件节拍(S)" prop="single_piece">
-            <el-input placeholder="请输入" v-model="formData.single_piece" />
+            <el-input-number
+              placeholder="请输入"
+              v-model="formData.single_piece"
+            />
           </el-form-item>
         </el-col>
 
         <!-- 外包类型 -->
-        <el-col :span="12">
+        <el-col :span="12" v-if="type == '2'">
           <el-form-item label="外包类型" prop="package_type">
             <el-input placeholder="请输入" v-model="formData.package_type" />
           </el-form-item>
         </el-col>
 
         <!-- 内包类型 -->
-        <el-col :span="12">
+        <el-col :span="12" v-if="type == '2'">
           <el-form-item label="内包类型" prop="innerpackage_type">
             <el-input
               placeholder="请输入"
@@ -408,7 +473,12 @@
         <!-- snp -->
         <el-col :span="12" v-if="type == '2'">
           <el-form-item label="SNP" prop="snp">
-            <el-input placeholder="请输入" v-model="formData.snp" />
+            <el-input-number
+              :step="1"
+              :precision="0"
+              placeholder="请输入"
+              v-model="formData.snp"
+            />
           </el-form-item>
         </el-col>
 
@@ -416,6 +486,8 @@
         <el-col :span="12" v-if="type == '2'">
           <el-form-item label="循环次数(次)" name="cycle_number">
             <el-input-number
+              :step="1"
+              :precision="0"
               class="inline-block w-full!"
               placeholder="请输入"
               v-model="formData.cycle_number"
@@ -433,7 +505,7 @@
         <!-- 供货距离(KM) -->
         <el-col :span="12" v-if="type == '2'">
           <el-form-item label="供货距离(KM)" prop="supplier_distance">
-            <el-input
+            <el-input-number
               placeholder="请输入"
               v-model="formData.supplier_distance"
             />
@@ -450,46 +522,72 @@
         <!-- 最小起订量 -->
         <el-col :span="12" v-if="type == '2'">
           <el-form-item label="最小起订量" name="min_order">
-            <el-input placeholder="请输入" v-model="formData.min_order" />
+            <el-input-number
+              :step="1"
+              :precision="0"
+              placeholder="请输入"
+              v-model="formData.min_order"
+            />
           </el-form-item>
         </el-col>
-        <template v-if="type == '1'">
+        <template>
           <!-- 备用字段1 -->
           <el-col :span="12">
             <el-form-item label="工程BOM备用字段1" name="engin_var1">
-              <el-input placeholder="请输入" v-model="formData.engin_var1" />
+              <el-input
+                :disabled="!!originFormData?.erp_code && type === '2'"
+                placeholder="请输入"
+                v-model="formData.engin_var1"
+              />
             </el-form-item>
           </el-col>
           <!-- 备用字段2 -->
           <el-col :span="12">
             <el-form-item label="工程BOM备用字段2" name="engin_var2">
-              <el-input placeholder="请输入" v-model="formData.engin_var2" />
+              <el-input
+                :disabled="!!originFormData?.erp_code && type === '2'"
+                placeholder="请输入"
+                v-model="formData.engin_var2"
+              />
             </el-form-item>
           </el-col>
           <!-- 备用字段3 -->
           <el-col :span="12">
             <el-form-item label="工程BOM备用字段3" name="engin_var3">
-              <el-input placeholder="请输入" v-model="formData.engin_var3" />
+              <el-input
+                :disabled="!!originFormData?.erp_code && type === '2'"
+                placeholder="请输入"
+                v-model="formData.engin_var3"
+              />
             </el-form-item>
           </el-col>
           <!-- 备用字段4 -->
           <el-col :span="12">
             <el-form-item label="工程BOM备用字段4" name="engin_var4">
-              <el-input placeholder="请输入" v-model="formData.engin_var4" />
+              <el-input
+                :disabled="!!originFormData?.erp_code && type === '2'"
+                placeholder="请输入"
+                v-model="formData.engin_var4"
+              />
             </el-form-item>
           </el-col>
           <!-- 备用字段5 -->
-          <el-col :span="12" v-if="type == '1'">
+          <el-col :span="12">
             <el-form-item label="工程BOM备用字段5" name="engin_var5">
-              <el-input placeholder="请输入" v-model="formData.engin_var5" />
+              <el-input
+                :disabled="!!originFormData?.erp_code && type === '2'"
+                placeholder="请输入"
+                v-model="formData.engin_var5"
+              />
             </el-form-item>
           </el-col>
         </template>
-        <template v-if="type == '2'">
+        <template>
           <!-- 备用字段1 -->
           <el-col :span="12">
             <el-form-item label="制造BOM备用字段1" name="manufacture_var1">
               <el-input
+                :disabled="!!originFormData?.erp_code && type === '1'"
                 placeholder="请输入"
                 v-model="formData.manufacture_var1"
               />
@@ -499,6 +597,7 @@
           <el-col :span="12">
             <el-form-item label="制造BOM备用字段2" name="manufacture_var2">
               <el-input
+                :disabled="!!originFormData?.erp_code && type === '1'"
                 placeholder="请输入"
                 v-model="formData.manufacture_var2"
               />
@@ -508,6 +607,7 @@
           <el-col :span="12">
             <el-form-item label="制造BOM备用字段3" name="manufacture_var3">
               <el-input
+                :disabled="!!originFormData?.erp_code && type === '1'"
                 placeholder="请输入"
                 v-model="formData.manufacture_var3"
               />
@@ -517,6 +617,7 @@
           <el-col :span="12">
             <el-form-item label="制造BOM备用字段4" name="manufacture_var4">
               <el-input
+                :disabled="!!originFormData?.erp_code && type === '1'"
                 placeholder="请输入"
                 v-model="formData.manufacture_var4"
               />
@@ -526,6 +627,7 @@
           <el-col :span="12">
             <el-form-item label="制造BOM备用字段5" name="manufacture_var5">
               <el-input
+                :disabled="!!originFormData?.erp_code && type === '1'"
                 placeholder="请输入"
                 v-model="formData.manufacture_var5"
               />
@@ -544,7 +646,9 @@
     </el-form>
     <template #footer>
       <el-button @click="visible = false">取消</el-button>
-      <el-button v-if="!readonly" type="primary" @click="handleSubmit">确定</el-button>
+      <el-button v-if="!readonly" type="primary" @click="handleSubmit"
+        >确定</el-button
+      >
     </template>
   </el-drawer>
   <TableModal ref="recomendRef" @ok="handleRecomend" />
@@ -571,7 +675,7 @@ const isEmpty = ref(false);
 const handleEmptyErpCode = () => {
   formData.value.erp_code = "";
   isEmpty.value = true;
-}
+};
 
 const keyMap = {
   gridorders: "序号",
@@ -697,7 +801,7 @@ const processOptions = [
   "手工装配",
   "整理",
   "打磨",
-]
+];
 
 const visible = ref(false);
 const layerIndex = ref(0);
@@ -727,8 +831,10 @@ const recomendRef = ref<{
 // 1.工程BOM只有P,C件这两个按钮才可以操作
 // 2.制造BOM只有M件,这两个按钮才可以操作
 const erpCodeDisabled = computed(() => {
-  if(type === "1") return formData.value.part_type === "M" || !formData.value.part_type;
-  if(type === "2") return formData.value.part_type !== "M" || !formData.value.part_type;
+  if (type === "1")
+    return formData.value.part_type === "M" || !formData.value.part_type;
+  if (type === "2")
+    return formData.value.part_type !== "M" || !formData.value.part_type;
 });
 
 const editType = ref<"add" | "edit">("edit");