Pārlūkot izejas kodu

工序配置中 保存/修改 单个工步 功能

jingshuyong 1 gadu atpakaļ
vecāks
revīzija
2b58cd6f96

+ 9 - 0
src/api/material/BOM.js

@@ -324,6 +324,15 @@ export async function workingStepUpdate(data) {
   return Promise.reject(new Error(res.data.message));
 }
 
+// 修改单个工步
+export async function workingSingleUpdate(data) {
+  const res = await request.put(`/main/categoryparamstep/updateStepItem`, data);
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
 // 获取工步详情
 export async function getStepDetailById(id) {
   const res = await request.get(`/main/categoryparamstep/getById/${id}`);

+ 95 - 23
src/views/material/BOMmanage/components/workmanship.vue

@@ -10,18 +10,30 @@
         <el-row type="flex" :gutter="24">
           <el-col :span="6">
             <el-form-item label="工序编码:" label-width="100px">
-              <el-input clearable v-model.trim="where.code" placeholder="请输入" />
+              <el-input
+                clearable
+                v-model.trim="where.code"
+                placeholder="请输入"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item label="工序名称:" label-width="100px">
-              <el-input clearable v-model.trim="where.name" placeholder="请输入" />
+              <el-input
+                clearable
+                v-model.trim="where.name"
+                placeholder="请输入"
+              />
             </el-form-item>
           </el-col>
 
           <el-col :span="6">
             <el-form-item label="所属工作中心" label-width="100px">
-              <el-input clearable v-model.trim="where.workCenterName" placeholder="请输入" />
+              <el-input
+                clearable
+                v-model.trim="where.workCenterName"
+                placeholder="请输入"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="4">
@@ -45,7 +57,6 @@
         ref="table"
         :columns="columns"
         :datasource="datasource"
-
         :need-page="false"
         row-key="id"
       >
@@ -79,11 +90,14 @@
               :key="row.code + '-' + $index"
             >
               <template v-slot:sort="{ row }">
-                <el-input v-model="row.sort"></el-input>
+                <el-input
+                  @input="(e) => validateNumber(e, row)"
+                  v-model.number="row.sort"
+                ></el-input>
               </template>
 
               <!-- 默认值 -->
-              <template v-slot:defaultValue="{ row }">
+              <!-- <template v-slot:defaultValue="{ row }">
                 <el-input
                   v-if="
                     row.textType == 1 || row.textType == 4 || row.textType == 5
@@ -99,17 +113,33 @@
                   <el-option label="TRUE" :value="'TRUE'" />
                   <el-option label="FALSE" :value="'FALSE'" />
                 </el-select>
+              </template> -->
+              <template v-slot:name="{ row }">
+                <el-input v-model="row.name" placeholder="请输入"></el-input>
+              </template>
+              <template v-slot:defaultValue="{ row }">
+                <el-input
+                  v-model="row.defaultValue"
+                  placeholder="请输入"
+                ></el-input>
               </template>
-
               <!-- 操作列 -->
               <template v-slot:action="{ row }">
-                <el-link
+                <!-- <el-link
                   type="primary"
                   :underline="false"
                   icon="el-icon-edit"
                   @click="editWorkingStep(row)"
                 >
                   修改
+                </el-link> -->
+                <el-link
+                  type="primary"
+                  :underline="false"
+                  icon="el-icon-house"
+                  @click="saveWorking(row)"
+                >
+                  保存
                 </el-link>
                 <el-link
                   type="primary"
@@ -134,7 +164,6 @@
                 >
                   <template v-slot:reference>
                     <el-link
-
                       type="danger"
                       :underline="false"
                       icon="el-icon-delete"
@@ -149,7 +178,7 @@
         </template>
 
         <!-- 操作列 -->
-        <template v-slot:action="{ row }"  >
+        <template v-slot:action="{ row }">
           <el-link
             type="primary"
             :underline="false"
@@ -222,7 +251,8 @@
   import {
     workingProcedureUpdate,
     getStepListById,
-    workingStepSave
+    workingStepSave,
+    workingSingleUpdate
   } from '@/api/material/BOM';
   import ProcessModal from './processModal.vue';
   import ParamModal from './ParamModal.vue';
@@ -240,21 +270,21 @@
       workingStep
     },
     props: {
-      resourceBomId: Number,
+      resourceBomId: String,
 
       taskParam: Object,
       attributeData: {
         type: Object,
         default: {}
-      },
+      }
     },
 
     watch: {
       attributeData: {
         handler(val) {
-         this.$nextTick(() => {
-          this.reload()
-         })
+          this.$nextTick(() => {
+            this.reload();
+          });
         },
         deep: true,
         immediate: true
@@ -330,21 +360,23 @@
           },
           {
             prop: 'code',
-            label: '工步类型',
+            label: '工步编码',
             showOverflowTooltip: true,
             align: 'center',
             minWidth: 110
           },
           {
             prop: 'name',
-            label: '工步编码',
+            slot: 'name',
+            label: '工步名称',
             showOverflowTooltip: true,
             align: 'center',
             minWidth: 110
           },
           {
-            prop: 'name',
-            label: '工序名称',
+            slot: 'defaultValue',
+            prop: 'defaultValue',
+            label: '工序内容',
             showOverflowTooltip: true,
             align: 'center',
             minWidth: 110
@@ -378,6 +410,46 @@
       };
     },
     methods: {
+      // 单个工步数据保存
+      saveWorking(row) {
+        if (!row.name) {
+          this.$message.warning('请输入工步名称');
+          return;
+        }
+        if (!row.sort) {
+          this.$message.warning('请输入工步排序');
+          return;
+        }
+        let data = {
+          stepName: row.name,
+          id: row.id,
+          defaultValue: row.defaultValue,
+          sort: row.sort
+        };
+        workingSingleUpdate(data)
+          .then((res) => {
+            if (res.data) {
+              this.$message.success('保存成功');
+            }else{
+               this.$message.error('保存失败');
+            }
+          })
+          .catch((err) => {
+            console.log(err, 'err');
+          });
+      },
+      validateNumber(e, row) {
+        if (e == 0) {
+          row.sort = '';
+          return;
+        }
+        let value = '';
+        value = e.replace(/[^\d]/g, '');
+        if (value.startsWith('0') && value.length > 1) {
+          value = value.replace(/^0+/, '');
+        }
+        row.sort = value;
+      },
       // expandChange(row, rows) {
       //   if (rows.length > 0) {
       //     // 展开
@@ -454,7 +526,6 @@
         this.$refs.table.reload({ where });
       },
       chooseProcess(data) {
-
         // let _arr = [...data, ...this.$refs.table.getData()];
         // this.$refs.table.setData([...data, ...this.$refs.table.getData()]);
         // this.$emit('chooseProcess', _arr);
@@ -503,15 +574,16 @@
               categoryId: this.taskParam.categoryId,
               bomCategoryId: this.taskParam.id,
               categoryCode: this.taskParam.categoryCode
-            }
+            };
             itemData.type = item.type.code;
             return itemData;
           });
           workingStepSave(params).then((data) => {
             this.$message.success('保存成功');
+            this.reload();
           });
         }
-        this.reload();
+        // this.reload();
         console.log(data);
         console.log(current);
       },

+ 54 - 20
src/views/technology/stepManagement/components/user-edit.vue

@@ -30,26 +30,41 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="状态:" prop="status">
-            <el-select v-model="form.status" placeholder="请选择" style="width: 100%" :disabled="isView">
+            <el-select
+              v-model="form.status"
+              placeholder="请选择"
+              style="width: 100%"
+              :disabled="isView"
+            >
               <el-option label="生效" :value="0" />
               <el-option label="失效" :value="1" />
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
-          <el-form-item label="排序:" prop="sort">
-            <!--            <el-input :disabled="isView" type="number" v-model="form.sort" />-->
-            <el-input-number v-model="form.sort" :min="1" :disabled="isView"/>
-          </el-form-item>
-        </el-col>
         <el-col :span="24" v-if="form.textType === '7'">
-          <el-form-item label="默认值:" prop="defaultValue">
-            <el-input v-model="form.defaultValue" type="textarea" :disabled="isView"> </el-input>
+          <el-form-item label="内容:" prop="defaultValue">
+            <el-input
+              v-model="form.defaultValue"
+              type="textarea"
+              :disabled="isView"
+            >
+            </el-input>
           </el-form-item>
         </el-col>
         <el-col :span="24">
           <el-form-item label="备注:" prop="remark">
-            <el-input placeholder="请输入" v-model="form.remark" type="textarea" :disabled="isView"/>
+            <el-input
+              placeholder="请输入"
+              v-model="form.remark"
+              type="textarea"
+              :disabled="isView"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="排序:" prop="sort">
+            <!--            <el-input :disabled="isView" type="number" v-model="form.sort" />-->
+            <el-input-number v-model="form.sort" :min="1" :disabled="isView" />
           </el-form-item>
         </el-col>
         <el-col :span="8">
@@ -61,7 +76,11 @@
 
       <!-- 工步参数修改 2025-06-24 -->
       <headerTitle title="物品清单">
-        <el-button type="primary" size="small" @click="handleAdd" v-show="!isView"
+        <el-button
+          type="primary"
+          size="small"
+          @click="handleAdd"
+          v-show="!isView"
           >新增</el-button
         >
       </headerTitle>
@@ -99,7 +118,10 @@
 
         <el-table-column label="操作" fixed="right">
           <template slot-scope="{ $index, row }">
-            <el-button type="text" @click="removeItem($index, row)" v-show="!isView"
+            <el-button
+              type="text"
+              @click="removeItem($index, row)"
+              v-show="!isView"
               >删除设备</el-button
             >
           </template>
@@ -107,7 +129,13 @@
       </el-table>
 
       <headerTitle title="注意事项" class="focus-item">
-        <el-button type="primary" size="small" @click="addPostscript" v-show="!isView">新增</el-button>
+        <el-button
+          type="primary"
+          size="small"
+          @click="addPostscript"
+          v-show="!isView"
+          >新增</el-button
+        >
       </headerTitle>
 
       <el-table
@@ -143,7 +171,10 @@
 
         <el-table-column label="操作" fixed="right" width="100">
           <template slot-scope="{ $index, row }">
-            <el-button type="text" @click="removePostscript($index, row)" v-show="!isView"
+            <el-button
+              type="text"
+              @click="removePostscript($index, row)"
+              v-show="!isView"
               >删除</el-button
             >
           </template>
@@ -153,7 +184,12 @@
 
     <template v-slot:footer>
       <el-button @click="updateVisible(false)">取消</el-button>
-      <el-button type="primary" :loading="loading" @click="save" v-show="!isView">
+      <el-button
+        type="primary"
+        :loading="loading"
+        @click="save"
+        v-show="!isView"
+      >
         保存
       </el-button>
     </template>
@@ -196,7 +232,7 @@
           postscriptRemoveIds: [],
           textType: '7',
           defaultValue: '',
-          remark: '',
+          remark: ''
         };
       };
       return {
@@ -205,9 +241,7 @@
         form: defaultForm(),
         // 表单验证规则
         rules: {
-          name: [
-            { required: true, message: '请输入工步名称', trigger: 'blur' }
-          ],
+          name: [{ required: true, message: '请输入工步名称', trigger: 'blur' }]
         },
         // 提交状态
         loading: false,
@@ -228,7 +262,7 @@
     methods: {
       /* 添加质量工具 */
       handleAdd() {
-        this.$refs.productRefs.open(this.form.toolList);
+        this.$refs.productRefs.open(2, '', this.form.toolList);
       },
       chooseModal(data) {
         this.form.toolList = [...this.form.toolList, ...data];

+ 33 - 12
src/views/technology/stepManagement/index.vue

@@ -52,16 +52,30 @@
             icon="el-icon-download"
             class="ele-btn-icon"
             plain
-
             @click="uploadFile()"
           >
             导入
           </el-button>
         </template>
-
+        <template v-slot:code="{ row }">
+          <el-link
+            type="primary"
+            :underline="false"
+            @click="openEdit(row, true)"
+            >{{ row.code }}</el-link
+          >
+        </template>
         <template v-slot:name="{ row }">
-          <span> {{ row.name }}</span>
+          <el-link
+            type="primary"
+            :underline="false"
+            @click="openEdit(row, true)"
+            >{{ row.name }}</el-link
+          >
         </template>
+        <!-- <template v-slot:name="{ row }">
+          <span> {{ row.name }}</span>
+        </template> -->
 
         <!-- 操作列 -->
         <template v-slot:action="{ row }">
@@ -73,14 +87,14 @@
           >
             修改
           </el-link>
-          <el-link
+          <!-- <el-link
             type="primary"
             :underline="false"
             icon="el-icon-setting"
             @click="openEdit(row, true)"
           >
             详情
-          </el-link>
+          </el-link> -->
 
           <el-popconfirm
             class="ele-action"
@@ -134,7 +148,7 @@
 
   export default {
     name: 'technologyProduction',
-    mixins:[tabMixins],
+    mixins: [tabMixins],
     components: {
       UserSearch,
       UserEdit,
@@ -144,7 +158,7 @@
     },
     data() {
       return {
-        moduleName : "mainProduceStep",
+        moduleName: 'mainProduceStep',
         // 表格列配置
         columns: [
           {
@@ -166,7 +180,8 @@
             prop: 'code',
             label: '编码',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            slot: 'code'
           },
           {
             slot: 'name',
@@ -175,12 +190,19 @@
             align: 'center',
             minWidth: 110
           },
+          {
+            label: '内容',
+            prop: 'defaultValue',
+            showOverflowTooltip: true,
+            align: 'center',
+            minWidth: 330
+          },
           {
             prop: 'status',
             label: '状态',
             align: 'center',
             showOverflowTooltip: true,
-            minWidth: 110,
+            minWidth: 50,
             formatter: (_row) => {
               return ['生效', '失效'][_row.status];
             }
@@ -192,10 +214,9 @@
             // sortable: 'custom',
             showOverflowTooltip: true,
             align: 'center',
-            minWidth: 110
+            minWidth: 40
           },
 
-
           {
             columnKey: 'action',
             label: '操作',
@@ -333,7 +354,7 @@
       close(done) {
         this.sampleShow = false;
       },
-      uploadFile () {
+      uploadFile() {
         this.$refs.importDialogRef.open();
       }
     }