qinhb пре 1 година
родитељ
комит
8b60d55496
2 измењених фајлова са 93 додато и 28 уклоњено
  1. 9 0
      src/api/process/index.ts
  2. 84 28
      src/views/plan/prepare/index.vue

+ 9 - 0
src/api/process/index.ts

@@ -20,4 +20,13 @@ export function updateOutSourceApply(
   });
 }
 
+export function queryChildrenInfo(
+    workOrderCode: object
+): AxiosPromise<any> {
+  return request({
+    url: "/api/v1/process/info/childrenInfo/" + workOrderCode,
+    method: "get",
+  });
+}
+
 

+ 84 - 28
src/views/plan/prepare/index.vue

@@ -10,22 +10,38 @@
         @row-save="createRow"
         @row-update="updateRow"
         @row-del="deleteRow"
+        @tree-load="treeLoad"
         @search-change="searchChange"
         @search-reset="resetChange"
         @size-change="dataList"
         @current-change="dataList"
         @selection-change="selectionChange"
+        :span-method="spanMethod"
     >
-
+      <template #orderCode="{ row }">
+        <el-text v-if="row.orderCode">{{row.orderCode}}</el-text>
+        <div style="width: 100%; height: 100%;display: flex" v-if="!row.orderCode && row.operationDetails">
+          <div style="width: 120px;height: 100%"  v-for="item in row.operationDetails">
+            <el-progress
+                :text-inside="true"
+                :stroke-width="35"
+                :percentage="item.completeNum/row.workOrderNum * 100"
+                status="success"
+            >{{item.operationName}}(完成{{item.completeNum}})
+            </el-progress>
+          </div>
+        </div>
+        <el-tag v-if="row.workOrderCode === '-'" type="primary">库存数量:{{ row.stockNum }}</el-tag>
+      </template>
       <template #menu="{size,row,index}">
-        <el-button
+<!--        <el-button
             type="primary"
             link
             v-if="row.bom === '0' || row.dataFile === '0'|| row.routeId === '0'|| row.craftFile === '0'"
             size="small"
             @click="handleEdit(row,0)"
         ><i-ep-edit />编辑
-        </el-button>
+        </el-button>-->
         <el-button
             type="primary"
             link
@@ -69,7 +85,7 @@
 import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import {prepareCheckInfo,refreshPrepareCheckInfo} from "@/api/order"
-
+import {queryChildrenInfo} from "@/api/process"
 import { useCommonStoreHook } from "@/store";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 const test = () => {
@@ -91,6 +107,26 @@ const dialog = reactive({
   title: "订单选择",
   visible: false,
 });
+const merginState = ref(false)
+const spanMethod = ({ row, column, rowIndex, columnIndex })=>{
+  if(row.hasParent){
+    if(columnIndex === 6){
+      merginState.value = true
+      return [1, 11]
+    }else if(columnIndex > 6 && merginState){
+      return [0,0]
+    }
+  }else{
+    merginState.value = false
+  }
+  /*if (rowIndex % 2 === 0) {
+    if (columnIndex === 0) {
+      return [1, 2]
+    } else if (columnIndex === 1) {
+      return [0, 0]
+    }
+  }*/
+}
 const checkInfo = (code) =>{
   prepareCheckInfo(code).then((data)=>{
     form.value.deviceStr = data.data.deviceStr
@@ -99,6 +135,11 @@ const checkInfo = (code) =>{
     form.value.materialStr = data.data.materialStr
   })
 }
+const treeLoad = (tree, treeNode, resolve) =>{
+  queryChildrenInfo(tree.workOrderCode).then((data)=>{
+    resolve(data.data)
+  })
+}
 const handleEdit =(row,index)=>{
   crudRef.value && crudRef.value.rowEdit(row,index);
 }
@@ -126,6 +167,11 @@ option.value = Object.assign(option.value, {
   delBtn: false,
   selection: false,
   editBtn: false,
+  tree: true,
+  viewBtn: false,
+  lazy: true,
+  menuWidth: 100,
+  rowKey: 'workOrderCode',
   addBtn: false,
   dialogWidth: '45%', // 设置编辑弹窗的宽度为50%
   column: [
@@ -133,8 +179,7 @@ option.value = Object.assign(option.value, {
       label: "工单号",
       prop: "workOrderCode",
       search: true,
-      width: 140,
-      overHidden: true,
+      minWidth: 200,
       editDisabled : true,
       rules: [
         {
@@ -155,76 +200,83 @@ option.value = Object.assign(option.value, {
       }
     },
     {
-      label: "计划单号",
-      prop: "orderCode",
+      label: "产品编码",
+      prop: "materialCode",
       search: true,
-      width: 140,
+      width: 130,
       overHidden: true,
       disabled: true,
       rules: [
         {
           required: true,
-          message: "计划单号不能为空",
+          message: "产品编码不能为空",
           trigger: "trigger",
         },
       ],
     },
     {
-      label: "计划名称",
-      prop: "orderName",
-      search: true,
+      label: "产品名称",
+      prop: "materialName",
       disabled: true,
-      width: 150,
+      width: 140,
       overHidden: true,
+      search: true,
       rules: [
         {
           required: true,
-          message: "计划名称不能为空",
+          message: "产品名称不能为空",
           trigger: "trigger",
         },
       ],
     },
     {
-      label: "产品编码",
-      prop: "materialCode",
+      label: "产品规格",
+      prop: "materialModel",
+      disabled: true,
       search: true,
       width: 140,
       overHidden: true,
-      disabled: true,
       rules: [
         {
           required: true,
-          message: "产品编码不能为空",
+          message: "产品规格不能为空",
           trigger: "trigger",
         },
       ],
     },
     {
-      label: "产品名称",
-      prop: "materialName",
+      label: "数量",
+      prop: "workOrderNum",
       disabled: true,
-      width: 150,
+      width: 80,
       overHidden: true,
+    },
+    {
+      label: "计划单号",
+      prop: "orderCode",
       search: true,
+      width: 130,
+      overHidden: true,
+      disabled: true,
       rules: [
         {
           required: true,
-          message: "产品名称不能为空",
+          message: "计划单号不能为空",
           trigger: "trigger",
         },
       ],
     },
     {
-      label: "产品规格",
-      prop: "materialModel",
-      disabled: true,
+      label: "计划名称",
+      prop: "orderName",
       search: true,
+      disabled: true,
       width: 150,
       overHidden: true,
       rules: [
         {
           required: true,
-          message: "产品规格不能为空",
+          message: "计划名称不能为空",
           trigger: "trigger",
         },
       ],
@@ -391,11 +443,12 @@ option.value = Object.assign(option.value, {
     {
       label: "创建时间",
       prop: "created",
-      width: 160,
+      width: 200,
       display: false
     },
     {
       label: "创建人",
+      width: 200,
       prop: "creator",
       display: false
     },
@@ -411,3 +464,6 @@ onMounted(() => {
 });
 
 </script>
+<style>
+
+</style>