gaoshp
2024-06-02 b46e6d2306515f94bf77c06e8d80ac76267e3ddb
src/views/console/product-process/process-route/workmanship.vue
@@ -2,7 +2,7 @@
 * @Author: lzhe lzhe@example.com
 * @Date: 2024-05-24 11:25:26
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-05-24 15:05:44
 * @LastEditTime: 2024-05-28 11:09:17
 * @FilePath: /src/views/console/product-process/process-route/workmanship.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -13,13 +13,13 @@
         <div style="margin-bottom: 12px;">
            <el-button type="primary" @click="table_open">新增</el-button>
            <el-button type="primary" v-if="isCustomization" @click="determineVersion">定版</el-button>
            <el-button disabled>并序</el-button>
            <el-button :disabled="mergeDisabled" @click="mergeBtn">并序</el-button>
         </div>
         <el-table ref="multipleTableRef0" :data="tableData" border style="width: 100%" class="multipleTableRef" @selection-change="HandleSelectionChange" @row-click="rowClick">
            <el-table-column type="selection" width="55" />
         <el-table ref="multipleTableRef0" :data="tableData" row-key="id" border :tree-props="{ children: 'children', hasChildren: 'has' }" style="width: 100%" class="multipleTableRef" @selection-change="HandleSelectionChange" @row-click="rowClick" default-expand-all>
            <el-table-column type="selection" :selectable="setSelectable" width="55" />
            <el-table-column prop="index" label="工序顺序">
               <template #default="scope">
                  <span>{{scope.row.index}}</span>
                  <span>{{scope.row.index || "-"}}</span>
               </template>
            </el-table-column>
            <el-table-column prop="processCode" label="工序编号"></el-table-column>
@@ -27,7 +27,8 @@
            <el-table-column fixed="right" label="操作" width="200px">
               <template #default="scope">
                  <el-button text type="primary" size="small" @click="table_edit(scope.row, scope.$index)">编辑</el-button>
                  <el-button text type="primary" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                  <el-button text type="primary" size="small" @click="table_del(scope.row, scope.$index)" v-if="scope.row.index">删除</el-button>
                  <el-button text type="primary" size="small" @click="table_remove(scope.row, scope.$index)" v-if="!scope.row.index">移除</el-button>
               </template>
            </el-table-column>
         </el-table>
@@ -49,6 +50,27 @@
         <add-workmanship ref="addworkmanship" @success="handleSuccess" :isClear="isClear" :craftId="craftId"></add-workmanship>
      </div>
   </el-drawer>
   <!-- 并序弹窗 -->
   <el-dialog title="并序" v-model="mergeVisible" :width="500" destroy-on-close>
      <el-form :inline="true" ref="mergeVisibleData" :model="mergeVisibleData" :rules="mergeVisibleRules" label-width="80px">
         <el-row>
            <el-col :span="24">
               <el-form-item label="工序编号" prop="processCode" style="width: 100%">
                  <el-input v-model="mergeVisibleData.processCode" placeholder="请输入工序编号" clearable></el-input>
               </el-form-item>
            </el-col>
            <el-col :span="24">
               <el-form-item label="工序名称" prop="processName" style="width: 100%">
                  <el-input v-model="mergeVisibleData.processName" placeholder="请输入工序名称" clearable></el-input>
               </el-form-item>
            </el-col>
         </el-row>
      </el-form>
      <template #footer>
         <el-button @click="cencelMerge" >取消</el-button>
         <el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="mergeSubmit">确定</el-button>
      </template>
   </el-dialog>
</template>
<script>
@@ -60,6 +82,16 @@
      props: ["isCustomization","craftId"],
      data() {
         return {
            mergeVisibleData: {
               processCode: "",
               processName: ""
            },
            mergeVisibleRules: {
               processCode:[{required: true, message: '请输入工序编号'}],
               processName:[{required: true, message: '请输入工序名称'}]
            },
            mergeVisible: false,
            mergeDisabled: true,
            isClear: false,
            drawer: false,
            tableData: [],
@@ -79,18 +111,71 @@
         }
      },
      methods: {
         setSelectable(row,rowIndex) {
            return !row.children && row.index;
         },
         cencelMerge() {
            this.mergeVisible=false;
            this.mergeVisibleData = {
               processCode: "",
               processName: ""
            };
         },
         mergeSubmit() {
            var that = this;
            this.selection.forEach(item=> {
               item.versionProcessId = item.id;
            });
            var obj = {
               parallelVO: this.selection,
               processCode: this.mergeVisibleData.processCode,
               processName: this.mergeVisibleData.processName,
               sort: 1,
               versionId: this.craftId
            }
            this.$refs.mergeVisibleData.validate(async (valid) => {
               if (valid) {
                  that.$HTTP.post("/api/blade-cps/production-craft-process/save-parallel",obj).then(res=> {
                     if(res.code == 200) {
                        that.mergeVisible = false;
                        that.$message.success("操作成功");
                        that.getcraftlList();
                     }else {
                        that.$alert(res.message, "提示", {type: 'error'});
                     }
                  })
               }else{
                  return false;
               }
            })
         },
         mergeBtn() {
            this.mergeVisible = true;
         },
         handleSuccess(value) {
            this.drawer = false;
            this.isClear = false;
            this.getcraftlList();
         },
         getcraftlList() {
            this.$HTTP.get(`/api/blade-cps/production-craft-version/detail/${this.craftId}`).then(res=> {
            // this.$HTTP.get(`/api/blade-cps/production-craft-version/detail/${this.craftId}`).then(res=> {
            //    if(res.code == 200) {
            //       res.data.processList.forEach((item,index)=> {
            //          item.index = index + 1;
            //       });
            //       this.tableData = res.data.processList;
            //    }
            // })
            this.$HTTP.get(`/api/blade-cps/production-craft-process/child-tree?versionId=${this.craftId}`).then(res=> {
               if(res.code == 200) {
                  res.data.processList.forEach((item,index)=> {
                  res.data.forEach((item,index)=> {
                     if(item.children && item.children.length > 0) {
                        item.disabled = true;
                     }
                     item.index = index + 1;
                  });
                  this.tableData = res.data.processList;
                  })
                  this.tableData = res.data;
               }
            })
         },
@@ -103,12 +188,13 @@
            this.$confirm(`工艺路线定版后,不支持编辑、删除、添加工序,请确认是否定版?`, '', {
               type: 'warning'
            }).then(() => {
               // this.$HTTP.delete("/api/blade-cps/production-craft-version/remove/"+that.delIconId).then(res=> {
               //    if(res.code == 200) {
               //       that.$message.success("操作成功");
               //       that.getDetail();
               //    }
               // })
               this.$HTTP.put(`/api/blade-cps/production-craft-version/fix-version/${this.craftId}`).then(res=> {
                  if(res.code == 200) {
                     that.$message.success("操作成功");
                  }else {
                     this.$message.error(res.msg);
                  }
               })
            }).catch(() => {
            })
@@ -126,6 +212,11 @@
         },
         HandleSelectionChange(selection) {
            this.selection = selection;
            if(this.selection.length >= 2) {
               this.mergeDisabled = false;
            }else {
               this.mergeDisabled = true;
            }
         },
         table_open() {
            if(this.isCustomization) {  //首页的新建
@@ -163,6 +254,37 @@
            }).catch(() => {
            })
         },
         table_remove(row,index) {
            var that = this;
            var tableData = [];
            this.tableData.forEach(item=> {
               if(item.children && item.children.lenght !=0) {
                  item.children.forEach(item1=> {
                     tableData.push(item1);
                  })
               }else {
                  tableData.push(item);
               }
            })
            this.$confirm(`此工序移除后,原并序将会转化为常规序。确定移除吗?`, '', {
               type: 'warning'
            }).then(() => {
               var obj = {
                  mainProcess: [],
                  normalProcess: tableData,
                  removeIds: [row.parentId],
                  versionId: that.craftId
               }
               this.$HTTP.post(`/api/blade-cps/production-craft-process/child-process-update`,obj).then(res=> {
                  if(res.code == 200) {
                     that.$message.success("操作成功");
                     that.getcraftlList();
                  }
               })
            }).catch(() => {
            })
         }
      }
   }