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

+ 2 - 2
src/api/produce/index.js

@@ -14,12 +14,12 @@ export async function getWarehouseList() {
  
 
 // 根据当前用户id查询他的负责工序
-  export async function treeByPid(data) {
+  export async function listTask(data) {
     const res = await request.get('/main/producetask/listTaskByUserId', {
       params: data
     });
     if (res.data.code == 0) {
-      return res.data;
+      return res.data.data;
     }
     return Promise.reject(new Error(res.data.message));
   }

+ 13 - 0
src/api/produce/workOrder.js

@@ -36,3 +36,16 @@ export async function treeByPid(data) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
+
+// 根据工单ids获取工单列表
+
+export async function workorderList(data) {
+  const res = await request.post('/pda/mes/workorder/list', data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+

+ 1 - 0
src/store/getters.js

@@ -6,6 +6,7 @@ export default {
   user: (state) => state.user,
   theme: (state) => state.theme,
   dict: (state) => state.dict,
+  taskObj: (state) => state.taskObj,
   // 根据字典enumName  和 dictCode 获取字典项
   getDict: (state) => (enumName, dictCode) =>
     (state.dict[dictEnum[enumName]] || []).find(

+ 11 - 2
src/store/modules/user.js

@@ -45,7 +45,8 @@ export default {
     // 当前登录用户的权限路由
     authoritiesRouter: [],
     // 当前登录用户的角色
-    roles: []
+    roles: [],
+    taskObj: {} //工序对象
   },
   mutations: {
     // 设置登录用户的信息
@@ -67,6 +68,10 @@ export default {
     // 设置登录用户的角色
     setRoles (state, roles) {
       state.roles = roles;
+    },
+
+    setTaskObj (state, taskObj) {
+      state.taskObj = taskObj;
     }
   },
   actions: {
@@ -182,6 +187,10 @@ export default {
         return m;
       });
       commit('setMenus', menus);
-    }
+    },
+
+    setTaskObj ({ commit }, value) {
+      commit('setTaskObj', value);
+    },
   }
 };

+ 28 - 3
src/views/produce/components/picking/index.vue

@@ -8,8 +8,10 @@
     append-to-body
     width="80%"
   >
+
+
     <el-form ref="formRef" :model="formObj" :rules="rules">
-      <div v-for="(item, idx) in workList" :key="idx">
+      <div v-for="(item, idx) in formObj.workList" :key="idx">
         <div class="table_box">
           <div class="row">
             <div class="col">
@@ -108,13 +110,14 @@
 
 <script>
   import pickingList from './pickingList.vue';
+  import { workorderList } from '@/api/produce/workOrder';
 
   export default {
     components: {
       pickingList
     },
     props: {
-      workList: {
+      workListIds: {
         type: Array,
         default() {
           return [];
@@ -128,9 +131,27 @@
         rules: {}
       };
     },
+    computed: {
+
+      taskObj() {
+        return this.$store.state.user.taskObj;
+      }
+    },
 
     watch: {},
     methods: {
+      getList() {
+        let param = {
+          ids: this.workListIds,
+          taskId:  this.taskObj.id,
+        
+        };
+        workorderList(param).then((res) => {
+          this.formObj.workList = res
+
+          this.$forceUpdate();
+        });
+      },
       handleClose() {
         this.$emit('close', false);
       },
@@ -140,7 +161,7 @@
       },
 
       allSelection(id, list) {
-        this.workList.forEach((e) => {
+        this.formObj.workList.forEach((e) => {
           if (e.id == id) {
             e.pickList = list;
             this.$forceUpdate();
@@ -159,6 +180,10 @@
           }
         });
       }
+    },
+
+    created() {
+      this.getList();
     }
   };
 </script>

+ 21 - 4
src/views/produce/components/produceOrder.vue

@@ -8,12 +8,11 @@
     @selection-change="handleSelectionChange"
     cache-key="produceOrderZ"
     highlight-current-row
-
     @row-click="rowClick"
     :need-page="false"
   >
     <template v-slot:toolbar>
-      <div class="c_title">工单列表</div>
+      <div class="c_title">工单列表 </div>
     </template>
   </ele-pro-table>
 </template>
@@ -97,10 +96,22 @@
             align: 'center'
           }
         ];
+      },
+
+      taskObj() {
+        return this.$store.state.user.taskObj;
       }
     },
 
-    watch: {},
+    watch: {
+      taskObj: {
+        handler(val) {
+          this.reload();
+        },
+        immediate: true,
+        deep: true
+      }
+    },
     created() {},
     methods: {
       /* 表格数据源 */
@@ -108,6 +119,7 @@
         return workorderPage({
           pageNum: page,
           size: limit,
+          taskId: this.taskObj.id,
           ...where
         });
       },
@@ -119,7 +131,12 @@
         });
       },
       handleSelectionChange(val) {
-        this.$emit('workSelect', val);
+        let ids = []
+        ids = val.map(item => {
+          return item.id;
+        });
+        console.log(ids)
+        this.$emit('workSelect', ids);
       },
 
       rowClick() {}

+ 113 - 88
src/views/produce/components/search.vue

@@ -1,79 +1,99 @@
 <template>
-    <div class="search_box">
-        <div class="left">
-            <div class="back" @click="back()">
-                <i class="el-icon-back"></i>
-                返回
-            </div>
-
-            <el-form class="search_form" label-width="90px" @keyup.enter.native="search" @submit.native.prevent>
-
-                <el-form-item label="工序名称:">
-                    <el-select v-model="search.taskId">
-                        <el-option v-for="(item,index) in produceTaskList" :key="index" :label="item.name" :value="item.id"></el-option>
-                    </el-select>
-                </el-form-item>
-
-                <el-form-item label="设备名称:">
-                    <el-input clearable v-model="search.deviceName" placeholder="请输入" />
-                </el-form-item>
-
-
-            </el-form>
-        </div>
-        <div class="right">
-         
-            <div class="lab">操作员:{{ userName }}</div>
-            <div class="lab">{{ currentTime }}</div>
-        </div>
+  <div class="search_box">
+    <div class="left">
+      <div class="back" @click="back()">
+        <i class="el-icon-back"></i>
+        返回
+      </div>
+
+      <el-form
+        class="search_form"
+        label-width="90px"
+        @keyup.enter.native="search"
+        @submit.native.prevent
+      >
+        <el-form-item label="工序名称:">
+          <el-select v-model="search.taskId" @change="changeSelect">
+            <el-option
+              v-for="(item, index) in produceTaskList"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="设备名称:">
+          <el-input
+            clearable
+            v-model="search.deviceName"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-form>
     </div>
+    <div class="right">
+      <div class="lab">操作员:{{ userName }}</div>
+      <div class="lab">{{ currentTime }}</div>
+    </div>
+  </div>
 </template>
 
 <script>
-export default {
+  import { listTask } from '@/api/produce/index';
+  export default {
     data() {
-        return {
-            currentTime: '',
-            userName: JSON.parse(localStorage.getItem('userInfo'))?.data?.name,
-
-            produceTaskList: [],
-            search: {
-                taskId: null,
-                deviceName: null,
-            }
-        };
+      return {
+        currentTime: '',
+        userName: JSON.parse(localStorage.getItem('userInfo'))?.data?.name,
+
+        produceTaskList: [],
+        search: {
+          taskId: null,
+          deviceName: null
+        }
+      };
     },
     created() {
-        this.getTaskList();
+      this.getTaskList();
 
-        this.updateCurrentTime();
-        setInterval(this.updateCurrentTime, 1000); // 每秒更新一次时间
+      this.updateCurrentTime();
+      setInterval(this.updateCurrentTime, 1000); // 每秒更新一次时间
     },
     methods: {
-
-        getTaskList() {
-            
-        },
-        back() {
-            this.$router.go(-1);
-        },
-        updateCurrentTime() {
-            const now = new Date();
-            const year = now.getFullYear();
-            const month = (now.getMonth() + 1).toString().padStart(2, '0'); // 月份是从0开始的
-            const day = now.getDate().toString().padStart(2, '0');
-            const hours = now.getHours().toString().padStart(2, '0');
-            const minutes = now.getMinutes().toString().padStart(2, '0');
-            const seconds = now.getSeconds().toString().padStart(2, '0');
-
-            this.currentTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
-        }
+      getTaskList() {
+        listTask().then((res) => {
+          this.produceTaskList = res;
+        });
+      },
+
+      changeSelect(e) {
+        let taskObj = {};
+        taskObj = this.produceTaskList.find((item) => item.id === e);
+  
+
+        this.$store.commit('user/setTaskObj', taskObj);
+      },
+      back() {
+        this.$router.go(-1);
+      },
+      updateCurrentTime() {
+        const now = new Date();
+        const year = now.getFullYear();
+        const month = (now.getMonth() + 1).toString().padStart(2, '0'); // 月份是从0开始的
+        const day = now.getDate().toString().padStart(2, '0');
+        const hours = now.getHours().toString().padStart(2, '0');
+        const minutes = now.getMinutes().toString().padStart(2, '0');
+        const seconds = now.getSeconds().toString().padStart(2, '0');
+
+        this.currentTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+      }
     }
-};
+  };
 </script>
 
 <style lang="scss" scoped>
-.search_box {
+  .search_box {
     min-width: 1280px;
     width: 100%;
     height: 50px;
@@ -85,41 +105,46 @@ export default {
     font-size: 20px;
 
     .left {
-        display: flex;
-        align-items: center;
-        font-size: 16px;
-        color: #fff;
-
-        .back{
-            margin-right: 40px;
-            cursor: pointer;
-        }
+      display: flex;
+      align-items: center;
+      font-size: 16px;
+      color: #fff;
+
+      .back {
+        margin-right: 40px;
+        cursor: pointer;
+      }
     }
 
     .right {
-        display: flex;
-        align-items: center;
-        font-size: 16px;
-        color: #fff;
-
-        .lab {
-            line-height: 50px;
-            margin-left: 60px;
-        }
+      display: flex;
+      align-items: center;
+      font-size: 16px;
+      color: #fff;
+
+      .lab {
+        line-height: 50px;
+        margin-left: 60px;
+      }
     }
-}
+  }
 
-.search_form {
+  .search_form {
     display: flex !important;
     height: 50px;
-    font-size: #FFF;
-    align-items: center;
 
-    --color-text-regular: #fff;
-}
+    align-items: center;
+  }
 
-.el-form-item {
+  .el-form-item {
     margin-bottom: 0px !important;
-}
+  }
+</style>
+
+<style>
+  .search_box {
+    .el-form-item__label {
+      color: #fff !important;
+    }
+  }
 </style>
-<st

+ 6 - 8
src/views/produce/index.vue

@@ -19,14 +19,12 @@
       <footBtn @footBtn="footBtn"></footBtn>
     </div>
 
-
-       <!--领料弹框 -->
+    <!--领料弹框 -->
     <picking
       v-if="pickingShow"
       @close="pickingClose"
-      :workList="workList"
+      :workListIds="workListIds"
     ></picking>
- 
   </div>
 </template>
 
@@ -50,7 +48,7 @@
       return {
         loading: false,
         operationType: null,
-        workList: [],
+        workListIds: [],
 
         pickingShow: false
       };
@@ -58,17 +56,17 @@
 
     created() {
       this.operationType = null;
-      this.workList = [];
+      this.workListIds = [];
     },
     methods: {
       workSelect(data) {
-        this.workList = data;
+        this.workListIds = data;
       },
 
       footBtn(t) {
         this.operationType = t;
         if (t == 'pick') {
-          if (this.workList.length == 0) {
+          if (this.workListIds.length == 0) {
             this.$message.warning('请选择工单列表');
             return false;
           }