1
lzhe
2024-05-26 3f8e22a435239659af746fcba55a51a1044100fe
src/views/console/product-process/process-route/addWorkmanship.vue
@@ -11,86 +11,100 @@
      <el-row>
         <el-col :span="24">
            <el-form-item label="工序编号" prop="test0">
               <el-select v-model="workmanshipForm.test0" style="width: 100%" placeholder="工序编号">
                  <el-option v-for="item in testList" :key="item.id" :label="item.name" :value="item.id"/>
               <el-select v-model="workmanshipForm.processId" style="width: 100%" placeholder="工序编号" @change="processChange">
                  <el-option v-for="item in processCodeList" :key="item.id" :label="item.code" :value="item.id"/>
               </el-select>
            </el-form-item>
         </el-col>
         <el-col :span="24">
            <el-form-item label="工序名称">
               <el-select v-model="workmanshipForm.test0" style="width: 100%" placeholder="工序名称">
                  <el-option v-for="item in testList" :key="item.id" :label="item.name" :value="item.id"/>
               <el-select v-model="workmanshipForm.processId" style="width: 100%" placeholder="工序名称" @change="processChange">
                  <el-option v-for="item in processNameList" :key="item.id" :label="item.name" :value="item.id"/>
               </el-select>
            </el-form-item>
         </el-col>
         <el-col :span="24">
            <el-form-item label="工种">
               <span>-</span>
               <span>{{workmanshipForm.processTypeName}}</span>
            </el-form-item>
         </el-col>
         <el-col :span="24">
            <el-form-item label="工序顺序" prop="test0">
               <el-input-number v-model="workmanshipForm.num" :min="1" :max="10" @change="handleChange" />
            <el-form-item label="工序顺序" prop="sort">
               <el-input-number v-model="workmanshipForm.sort" :min="1" :max="10" @change="handleChange" />
            </el-form-item>
         </el-col>
         <el-col :span="24">
            <el-form-item label="标准用时">
               <el-input v-model="workmanshipForm.test" style="width: 20%;margin-right: 12px;">
               <el-input v-model="workmanshipForm.d" style="width: 20%;margin-right: 12px;">
                  <template #suffix>天</template>
               </el-input>
               <el-input v-model="workmanshipForm.test" style="width: 20%;margin-right: 12px;">
               <el-input v-model="workmanshipForm.h" style="width: 20%;margin-right: 12px;">
                  <template #suffix>时</template>
               </el-input>
               <el-input v-model="workmanshipForm.test" style="width: 20%;margin-right: 12px;">
               <el-input v-model="workmanshipForm.m" style="width: 20%;margin-right: 12px;">
                  <template #suffix>分</template>
               </el-input>
               <el-input v-model="workmanshipForm.test" style="width: 20%;">
               <el-input v-model="workmanshipForm.s" style="width: 20%;">
                  <template #suffix>秒</template>
               </el-input>
            </el-form-item>
         </el-col>
         <el-col :span="8">
            <el-form-item label="准备工时">
               <el-input v-model="workmanshipForm.test">
               <el-input v-model="workmanshipForm.prepareTime">
                  <template #suffix>分</template>
               </el-input>
            </el-form-item>
         </el-col>
         <el-col :span="8">
            <el-form-item label="装卸工时">
               <el-input v-model="workmanshipForm.test">
               <el-input v-model="workmanshipForm.disassemblyTime">
                  <template #suffix>分</template>
               </el-input>
            </el-form-item>
         </el-col>
         <el-col :span="8">
            <el-form-item label="运输工时">
               <el-input v-model="workmanshipForm.test">
               <el-input v-model="workmanshipForm.transportTime">
                  <template #suffix>分</template>
               </el-input>
            </el-form-item>
         </el-col>
         <el-col :span="12">
            <el-form-item label="加工程序">
               <el-input v-model="workmanshipForm.test"></el-input>
               <el-tree-select
                  v-if="workmanshipForm.isSelectProgramFiles"
                  @change = "programIdChange"
                  default-expand-all
                   v-model="workmanshipForm.programId"
                   clearable
                  node-key="id"
                   placeholder="加工程序"
                  ref="parentTree"
                   :data="programIdData"
                   check-strictly
                   :props="{ label: 'name' }"
                   style="width:100%;"
                   :render-after-expand="false" />
               <el-input v-if="!workmanshipForm.isSelectProgramFiles" v-model="workmanshipForm.programName"></el-input>
            </el-form-item>
         </el-col>
         <el-col :span="12">
            <el-form-item label="">
               <el-checkbox v-model="workmanshipForm.box" label="选择程序文件" size="small"/>
               <el-checkbox v-model="workmanshipForm.isSelectProgramFiles" label="选择程序文件" size="small"/>
            </el-form-item>
         </el-col>
         <el-col :span="12">
            <el-form-item label="工艺包">
               <el-tree-select
                  @change = "parentIdChange"
                  @change = "bagIdChange"
                  default-expand-all
                   v-model="workmanshipForm.test"
                   v-model="workmanshipForm.bagId"
                   clearable
                  node-key="id"
                   placeholder="上级产品"
                   placeholder="工艺包"
                  ref="parentTree"
                   :data="parentData"
                   :data="bagIdData"
                   check-strictly
                   :props="{ label: 'name' }"
                   style="width:100%;"
@@ -108,11 +122,52 @@
               <el-button>批量关联</el-button>
            </el-form-item>
         </el-col>
         <!-- <el-col :span="24">
            <el-row style="margin-top: 12px;margin-bottom: 12px;" v-if="isAddData0">
               <el-col :span="4">
                  <el-select v-model="addData0.type" placeholder="夹具组" size="small" style="padding-right: 20px;">
                     <el-option v-for="item in typeList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
                  </el-select>
               </el-col>
               <el-col :span="4">
                  <el-select v-model="addData0.type" placeholder="夹具编号" size="small" style="padding-right: 20px;">
                     <el-option v-for="item in typeList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
                  </el-select>
               </el-col>
               <el-col :span="4">
                  <el-input v-model="addData0.description" disabled size="small" placeholder="夹具名称" style="padding-right: 20px;"></el-input>
               </el-col>
            </el-row>
         </el-col> -->
         <el-col :span="24">
            <el-table ref="multipleTableRef" :data="tableDataJQ" border style="width: 100%;margin-bottom:12px;" class="multipleTableRef">
               <el-table-column prop="code" label="夹具组"></el-table-column>
               <el-table-column prop="name" label="夹具编号"></el-table-column>
               <el-table-column prop="typeName" label="夹具名称"></el-table-column>
            <el-table ref="multipleTableRef" :data="fixtures" border style="width: 100%;margin-bottom:12px;" class="multipleTableRef">
               <el-table-column prop="fixtureGroupName" label="夹具组">
                  <template #default="scope">
                     <el-tree-select
                        @change = "fixturesChange"
                        default-expand-all
                         v-model="item.fixtureCode"
                         clearable
                        node-key="id"
                         placeholder="夹具组"
                        ref="parentTree"
                         :data="fixturesData"
                         check-strictly
                         :props="{ label: 'name' }"
                         style="width:100%;"
                         :render-after-expand="false" />
                  </template>
               </el-table-column>
               <el-table-column prop="name" label="夹具编号">
                  <template #default="scope">
                     <el-select v-model="item.fixtureCode" style="width: 100%" placeholder="刀具型号">
                        <el-option v-for="item in numJQList" :key="item.id" :label="item.name" :value="item.id"/>
                     </el-select>
                  </template>
               </el-table-column>
               <el-table-column prop="fixtureName" label="夹具名称"></el-table-column>
               <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>
@@ -127,10 +182,28 @@
            </el-form-item>
         </el-col>
         <el-col :span="24">
            <el-table ref="multipleTableRef" :data="tableDataDQ" border style="width: 100%;" class="multipleTableRef">
               <el-table-column prop="code" label="刀具类型"></el-table-column>
               <el-table-column prop="name" label="刀具型号"></el-table-column>
               <el-table-column prop="typeName" label="夹具编号"></el-table-column>
            <el-table ref="multipleTableRef" :data="tools" border style="width: 100%;" class="multipleTableRef">
               <el-table-column prop="code" label="刀具类型">
                  <template #default="scope">
                     <el-select v-model="item.test" style="width: 100%" placeholder="刀具型号">
                        <el-option v-for="item in typeDQList" :key="item.id" :label="item.name" :value="item.id"/>
                     </el-select>
                  </template>
               </el-table-column>
               <el-table-column prop="name" label="刀具型号">
                  <template #default="scope">
                     <el-select v-model="item.test" style="width: 100%" placeholder="刀具型号">
                        <el-option v-for="item in modelDQList" :key="item.id" :label="item.name" :value="item.id"/>
                     </el-select>
                  </template>
               </el-table-column>
               <el-table-column prop="typeName" label="夹具编号">
                  <template #default="scope">
                     <el-select v-model="item.test" style="width: 100%" placeholder="刀具型号">
                        <el-option v-for="item in numDQList" :key="item.id" :label="item.name" :value="item.id"/>
                     </el-select>
                  </template>
               </el-table-column>
               <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>
@@ -142,7 +215,7 @@
   </el-form>
   <div style="margin-top:12px;">
      <el-button>取消</el-button>
      <el-button type="primary">保存</el-button>
      <el-button type="primary" @click="craftSave">保存</el-button>
   </div>
</template>
@@ -150,25 +223,139 @@
   export default {
      data() {
         return {
            tableDataJQ: [],
            tableDataDQ: [],
            parentData: {},
            programIdData: {},
            numDQList: [],
            modelDQList: [],
            typeDQList: [],
            numJQList: [],
            fixturesData: [],
            parentDQData: [],
            fixtures: [],
            tools: [],
            bagIdData: {},
            testList: [],
            processCodeList: [],
            processNameList: [],
            workmanshipForm: {
               processCode: "",
               processId: "",
               processName: "",
               processTypeName: "-",
               sort: null,
               d: "",
               h: "",
               m: "",
               s: "",
               prepareTime: "",
               disassemblyTime: "",
               transportTime: "",
               programId: "",
               programName: "",  //加工顺序
               bagId: "",  //工具包
               bagName: "",
               isSelectProgramFiles: false,
               test0: "",
               test: "",
               num: null,
               box: false
            },
            workmanshipRules: {
               sort: [{ required: true, message: '请选择 工序顺序' }],
            },
         }
      },
      mounted() {
         this.getToolingTree();  //夹具组tree
         this.getCategoryTree();  //刀具类型
         this.getCateBag();  //工艺包
         this.getNumberAndName();  //工序编号和名称
         this.getCatalogueTree();  //加工程序
      },
      methods: {
         parentIdChange(val) {
         craftSave() {  //保存
            console.log(this.workmanshipForm)
         },
         processChange(val) {
            if(val) {
               this.processCodeList.forEach(item=> {
                  if(val == item.id) {
                     console.log(item)
                     this.workmanshipForm.processId = item.id;
                     this.workmanshipForm.processCode = item.code;
                     this.workmanshipForm.processName = item.name;
                     this.workmanshipForm.processTypeName = item.typeName;
                  }
               })
            }
         },
         getCatalogueTree() {  //加工程序
            this.$HTTP.get("/api/blade-dnc/dnc-process-catalogue/art-tree").then(res=> {
               if(res.code == 200) {
                  function ea(data) {
                     data.forEach(item=> {
                        if(item.children.length!=0) {
                           ea(item.children);
                        }
                        item.disabled = true;
                     })
                  }
                  ea(res.data);
                  this.programIdData = res.data;
               }
            })
         },
         getNumberAndName() {  //工序编号和名称
            this.$HTTP.get("/api/blade-cps/process/page?current=1&size=-1&status=1").then(res=> {
               if(res.code == 200) {
                  this.processCodeList = res.data.records;
                  this.processNameList = res.data.records;
                  console.log(res.data);
               }
            })
         },
         getCateBag() { //工艺包
            this.$HTTP.get("/api/blade-dnc/dnc-process-catalogue/cate-art-bag-tree").then(res=> {
               if(res.code == 200) {
                  function ea(data) {
                     data.forEach(item=> {
                        if(item.children) {
                           ea(item.children);
                        }
                        if(item.parentId <= 0) {
                           item.disabled = true;
                        }
                     })
                  }
                  ea(res.data);
                  this.bagIdData = res.data;
               }
            })
         },
         getCategoryTree() {  //刀具类型
            this.$HTTP.get("/api/blade-tool/tool-category/tree").then(res=> {
               if(res.code == 200) {
                  this.typeDQList = res.data;
               }
            })
         },
         getToolingTree() {
            var obj = {
               groupCategory: 1,
               groupType: "group_fixture"
            }
            this.$HTTP.post("/api/blade-cps/tray/tooling-tree",obj).then(res=> {
               if(res.code == 200) {
                  this.fixturesData = res.data;
               }
            })
         },
         programIdChange() {
         },
         fixturesChange() {
         },
         bagIdChange(val) {
            
         },
         table_edit() {