ysy пре 1 година
родитељ
комит
f966215d0a

+ 97 - 93
src/views/material/BOMmanage/components/workingProcedure.vue

@@ -161,7 +161,7 @@
           <term :qualityParam="qualityParam" ref="qualityParamRef"></term>
         </el-tab-pane>
         <el-tab-pane label="生产节拍" name="生产节拍">
-          <el-form label-width="140px" ref="form" :model="beatParam">
+          <el-form label-width="140px" ref="form" :model="beatParam" style="width: 800px; margin: auto;">
             <el-row>
               <el-col :span="16" label-width="100px">
                 <el-form-item label="节拍生产数量" prop="beatNum">
@@ -176,13 +176,14 @@
 
               <el-col :span="8" label-width="100px">
     
-                <el-form-item label="单位" prop="beatUnit">
+                <el-form-item label="单位:" prop="unit">
                   <el-select
                     v-if="!isView"
-                    v-model="beatParam.beatUnit"
+                    v-model="beatParam.unit"
                     filterable
                     class="ele-block"
-                    disabled
+                    @change="changeUnit"
+                  
                   >
                     <el-option
                       v-for="item in dictList"
@@ -191,7 +192,7 @@
                       :label="item.label"
                     ></el-option>
                   </el-select>
-                  <div v-else>{{ beatParam.beatUnit }}</div>
+                  <div v-else>{{ beatParam.unit }}</div>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -200,129 +201,85 @@
 
             <el-row>
               <el-col :span="16" label-width="100px">
-                <el-form-item label="生产时长" prop="beatTime">
+                <el-form-item label="生产时长" prop="newBeatTime">
+
+             
                   <el-input
                     v-if="!isView"
                     placeholder=""
-                    v-model="beatParam.beatTime"
+                    v-model="beatParam.newBeatTime"
+                    @blur="convertVal(beatParam.newBeatTime, 'beatTime')"
+                     oninput="value = value.replace(/[^\d.]/g, '')"
+                   
                   ></el-input>
-                  <div v-else>{{ beatParam.beatTime }}</div>
+                
+               <div v-else>{{ beatParam.newBeatTime }}</div> 
                 </el-form-item>
               </el-col>
 
               <el-col :span="8" label-width="100px">
-                <el-form-item label="单位" prop="beatTimeUnit">
-                  <el-select
-                    v-if="!isView"
-                    v-model="beatParam.beatTimeUnit"
-                    filterable
-                    class="ele-block"
-                    disabled
-                  >
-                    <el-option
-                      v-for="item in dictList"
-                      :key="item.value"
-                      :value="item.value"
-                      :label="item.label"
-                    ></el-option>
-                  </el-select>
-                  <div v-else>{{ beatParam.beatTimeUnit }}</div>
+                <el-form-item label="单位:" prop="">
+                  <div >{{ beatParam.unit }}</div>
                 </el-form-item>
               </el-col>
             </el-row>
             <el-row>
               <el-col :span="16" label-width="100px">
-                <el-form-item label="准备时长" prop="name">
+                <el-form-item label="准备时长" prop="newBeatPrepareTime">
                   <el-input
                     v-if="!isView"
                     placeholder=""
-                    v-model="beatParam.beatPrepareTime"
+                    v-model="beatParam.newBeatPrepareTime"
+                     @blur="convertVal(beatParam.newBeatPrepareTime, 'beatPrepareTime')"
+                       oninput="value = value.replace(/[^\d.]/g, '')"
                   ></el-input>
-                  <div v-else>{{ beatParam.beatPrepareTime }}</div>
+                  <div v-else>{{ beatParam.newBeatPrepareTime }}</div>
                 </el-form-item>
               </el-col>
 
               <el-col :span="8" label-width="100px">
-                <el-form-item label="单位" prop="beatPrepareUnit">
-                  <el-select
-                    v-if="!isView"
-                    v-model="beatParam.beatPrepareUnit"
-                    filterable
-                    class="ele-block"
-                    disabled
-                  >
-                    <el-option
-                      v-for="item in dictList"
-                      :key="item.value"
-                      :value="item.value"
-                      :label="item.label"
-                    ></el-option>
-                  </el-select>
-                  <div v-else>{{ beatParam.beatPrepareUnit }}</div>
+                <el-form-item label="单位:" prop="">
+                  <div>{{ beatParam.unit }}</div>
                 </el-form-item>
               </el-col>
             </el-row>
             <el-row>
               <el-col :span="16" label-width="140px">
-                <el-form-item label="下道工序间隔时长" prop="name">
+                <el-form-item label="下道工序间隔时长" prop="newBeatRestTime">
                   <el-input
                     v-if="!isView"
                     placeholder=""
-                    v-model="beatParam.beatRestTime"
+                    v-model="beatParam.newBeatRestTime"
+                    @blur="convertVal(beatParam.newBeatRestTime, 'beatRestTime')"
+                       oninput="value = value.replace(/[^\d.]/g, '')"
                   ></el-input>
-                  <div v-else>{{ beatParam.beatRestTime }}</div>
+                  <div v-else>{{ beatParam.newBeatRestTime }}</div>
                 </el-form-item>
               </el-col>
 
               <el-col :span="8" label-width="100px">
-                <el-form-item label="单位" prop="beatRestUnit">
-                  <el-select
-                    v-if="!isView"
-                    v-model="beatParam.beatRestUnit"
-                    filterable
-                    class="ele-block"
-                    disabled
-                  >
-                    <el-option
-                      v-for="item in dictList"
-                      :key="item.value"
-                      :value="item.value"
-                      :label="item.label"
-                    ></el-option>
-                  </el-select>
-                  <div v-else>{{ beatParam.beatRestUnit }}</div>
+                <el-form-item label="单位:" prop="beatRestUnit">
+                  <div >{{ beatParam.unit }}</div>
                 </el-form-item>
               </el-col>
             </el-row>
 
             <el-row>
               <el-col :span="16" label-width="100px">
-                <el-form-item label="标准时长" prop="type">
+                <el-form-item label="标准时长" prop="newTime">
                   <el-input
                     v-if="!isView"
                     placeholder="标准时长"
-                    v-model="beatParam.time"
+                    v-model="beatParam.newTime"
+                    @blur="convertVal(beatParam.newTime, 'time')"
+                       oninput="value = value.replace(/[^\d.]/g, '')"
                   ></el-input>
-                  <div v-else>{{ beatParam.time }}</div>
+                  <div v-else>{{ beatParam.newTime }}</div>
                 </el-form-item>
               </el-col>
               <el-col :span="8" label-width="100px">
-                <el-form-item label="单位" prop="type">
-                  <el-select
-                    v-if="!isView"
-                    v-model="beatParam.unit"
-                    filterable
-                    class="ele-block"
-                    disabled
-                  >
-                    <el-option
-                      v-for="item in dictList"
-                      :key="item.value"
-                      :value="item.value"
-                      :label="item.label"
-                    ></el-option>
-                  </el-select>
-                  <div v-else>{{ beatParam.unit }}</div>
+                <el-form-item label="单位:" prop="">
+                  <div >{{ beatParam.unit }}</div>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -1140,11 +1097,7 @@
         currentIndex: 0,
         tableData: {},
         beatParam: {
-          beatUnit: '秒',
-          beatTimeUnit: '秒',
-          beatRestUnit: '秒',
-          unit: '秒',
-          beatPrepareUnit: '秒'
+          
         },
 
         qualityParam: [],
@@ -1432,12 +1385,6 @@
           this.beatParam =
             this.tableData.taskParam[this.currentIndex].beatParam || this.beatParam;
 
-            this.beatParam.beatUnit = '秒'
-            this.beatParam.beatTimeUnit = '秒'
-            this.beatParam.unit = '秒'
-            this.beatParam.beatRestUnit = '秒'
-            this.beatParam.beatPrepareUnit = '秒'
-            
 
         } else if (this.activeName === '材料定额') {
           this.$refs.materialTable.setData(
@@ -1661,7 +1608,64 @@
           acc.push({ value, label: value }); // 将 { value, label } 格式的对象添加到数组中
           return acc;
         }, []); // 初始值为空数组 []
-      }
+      },
+
+
+
+   convertToSeconds(time) {
+    switch (this.beatParam.unit) {
+        case '秒':
+            return time;
+        case '分钟':
+            return time * 60;
+        case '小时':
+            return time * 3600;
+        case '天':
+            return time * 86400; // 24小时 * 60分钟 * 60秒
+        case '月':
+            // 近似值,一个月按30天计算
+            return time * 86400 * 30; 
+        case '年':
+            // 近似值,一年按365天计算
+            return time * 86400 * 365; 
+        case '毫秒':
+            return time / 1000;
+        case '微秒':
+            return time / 1000000;
+        default:
+          this.$message.error('不支持的时间单位: ' + unit);
+    }
+},
+
+convertVal(val, name) {
+  if(!this.beatParam.unit) {
+      return this.$message.error('请选择时间单位');
+  }
+  
+  const isNumeric = /^\d*(\.\d+)?$/.test(val);
+  if(isNumeric) {
+    this.beatParam[name] = this.convertToSeconds(val);
+  } else {
+    this.$message.error('请输入数字');
+    this.beatParam[name] = ''
+  }
+ 
+
+
+},
+
+changeUnit() {
+   this.beatParam.newTime = '';
+  this.beatParam.time = '';
+  this.beatParam.newBeatPrepareTime = '';
+  this.beatParam.beatPrepareTime = '';
+  this.beatParam.newBeatTime = '';
+  this.beatParam.beatTime = '';
+  this.beatParam.newBeatRestTime = '';
+  this.beatParam.beatRestTime = '';
+
+}
+
     }
   };
 </script>

+ 1 - 0
src/views/material/BOMmanage/components/workmanship.vue

@@ -45,6 +45,7 @@
         ref="table"
         :columns="columns"
         :datasource="datasource"
+         :initLoad="false"
         :need-page="false"
         row-key="id"
       >

+ 0 - 14
src/views/technology/production/components/user-edit.vue

@@ -69,20 +69,6 @@
         </el-col>
 
 
-        <el-col :span="12">
-          <el-form-item label="对应物料基本数量" label-width="140px" prop="categoryNum">
-            <el-row>
-              <el-col :span="16">
-                <el-input placeholder="请输入" v-model.number="form.workBeat.categoryNum">
-                </el-input></el-col>
-              <el-col :span="1">&nbsp;</el-col>
-              <el-col :span="7">
-                <DictSelection dictName="计量单位" v-model="form.workBeat.categoryUnit" />
-              </el-col>
-            </el-row>
-          </el-form-item>
-        </el-col>
-