quwangxin пре 2 година
родитељ
комит
f1809fbc1c

+ 8 - 0
src/api/mianData/index.js → src/api/mainData/index.js

@@ -11,3 +11,11 @@ export async function getProcessByRoute (data) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+// 根据生产版本获取工序
+export async function getTaskListById (id) {
+  const res = await request.get(`/main/produceversion/getTaskListById/${id}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 9 - 1
src/api/produceOrder/index.js

@@ -67,7 +67,15 @@ export async function getById (id) {
 
 // 拆分
 export async function splitWork (params) {
-  const res = await request.post(`/mes/workorder/split`,params);
+  const res = await request.post(`/mes/workorder/split`, params);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+// 报工
+export async function report (params) {
+  const res = await request.post(`/mes/workreport/report`, params);
   if (res.data.code == 0) {
     return res.data.data;
   }

+ 9 - 58
src/config/setting.js

@@ -14,6 +14,9 @@ export const HIDE_FOOTERS = [
   '/form/advanced'
 ];
 
+// 系统名称
+export const SYSTEM_NAME = 'mes';
+
 // 页签同路由不同参数可重复打开的路由
 export const REPEATABLE_TABS = [];
 
@@ -25,62 +28,6 @@ export const KEEP_ALIVE_EXCLUDES = [];
 
 // 直接指定菜单数据
 export const USER_MENUS = undefined;
-// [
-//   {
-//     path: '/dashboard',
-//     redirect: '/dashboard/user',
-//     meta: { title: '流程管理', icon: 'el-icon-setting' }
-//   },
-//   {
-//     path: '/system',
-//     redirect: '/system/user',
-//     meta: { title: '流程管理', icon: 'el-icon-setting' },
-//     children: [
-//       {
-//         path: '/system/user',
-//         component: '/system/user',
-//         meta: { title: '流程定义', icon: 'el-icon-user', hide: false }
-//       },
-//       {
-//         path: '/system/user',
-//         component: '/system/user',
-//         meta: { title: '流程审批', icon: 'el-icon-user', hide: false }
-//       },
-//       {
-//         path: '/system/user',
-//         component: '/system/user',
-//         meta: { title: '流程实列', icon: 'el-icon-user', hide: false }
-//       }
-//     ]
-//   },
-//   {
-//     path: '/system',
-//     redirect: '/system/user',
-//     meta: { title: '授权管理', icon: 'el-icon-setting' },
-//     children: [
-//       {
-//         path: '/system/user',
-//         component: '/system/user',
-//         meta: { title: '用户管理', icon: 'el-icon-user', hide: false }
-//       },
-//       {
-//         path: '/system/user',
-//         component: '/system/user',
-//         meta: { title: '角色管理', icon: 'el-icon-user', hide: false }
-//       },
-//       {
-//         path: '/system/user',
-//         component: '/system/user',
-//         meta: { title: '租户管理', icon: 'el-icon-user', hide: false }
-//       },
-//       {
-//         path: '/system/user',
-//         component: '/system/user',
-//         meta: { title: '菜单管理', icon: 'el-icon-user', hide: false }
-//       }
-//     ]
-//   }
-// ];
 
 // 首页名称, 为空则取第一个菜单的名称
 export const HOME_TITLE = undefined;
@@ -102,10 +49,14 @@ export const TAB_KEEP_ALIVE = true;
 export const TOKEN_HEADER_NAME = 'Authorization';
 
 // token 存储的名称
-export const TOKEN_STORE_NAME = 'access_token';
+export const TOKEN_STORE_NAME = window.__POWERED_BY_QIANKUN__
+  ? 'access_token'
+  : `${SYSTEM_NAME}-access_token`;
 
 // 主题配置存储的名称
-export const THEME_STORE_NAME = 'theme';
+export const THEME_STORE_NAME = window.__POWERED_BY_QIANKUN__
+  ? 'theme'
+  : `${SYSTEM_NAME}-theme`;
 
 // i18n 缓存的名称
 export const I18N_CACHE_NAME = 'i18n-lang';

+ 32 - 2
src/views/produceOrder/components/report/Processing.vue → src/views/produceOrder/components/report/Common.vue

@@ -8,7 +8,14 @@
         <li> <span class="label">累计投料产品数量</span>2 </li>
       </ul>
       <div class="right">
-        <el-form-item label="执行人工号"><el-input></el-input></el-form-item>
+        <el-form-item label="执行人工号"
+          ><personSelectRemote
+            v-model="formData.executorJobNum"
+            placeholder="请输入"
+            @selfChange="
+              (val, item) => (formData.executorJobNum = item.jobNumber)
+            "
+        /></el-form-item>
         <el-form-item label="执行日期"><el-input></el-input></el-form-item>
       </div>
     </div>
@@ -72,7 +79,30 @@
   </el-form>
 </template>
 
-<script></script>
+<script>
+  import personSelectRemote from '@/components/CommomSelect/person-select-remote';
+  export default {
+    components: { personSelectRemote },
+    data () {
+      return {
+        formData: {}
+      };
+    },
+    methods: {
+      getMsg () {},
+      report (fun) {
+        this.$refs.formRef.validate((value) => {
+          if (value) {
+            fun(this.formData).then((res) => {
+              console.log(res);
+              this.getMsg();
+            });
+          }
+        });
+      }
+    }
+  };
+</script>
 
 <style lang="scss" scoped>
   .message-box {

+ 9 - 18
src/views/produceOrder/picking.vue

@@ -99,15 +99,15 @@
 </template>
 
 <script>
-  import Extrusion from './components/report/Extrusion';
-  import Drying from './components/report/Drying';
-  import Heating from './components/report/Heating';
-  import HalfAdded from './components/report/HalfAdded';
-  import Processing from './components/report/Processing';
-  import Package from './components/report/Package';
-  import Warehousing from './components/report/Warehousing';
-  import Sinter from './components/report/Sinter';
-  import Furnace from './components/report/Furnace';
+  // import Extrusion from './components/report/Extrusion';
+  // import Drying from './components/report/Drying';
+  // import Heating from './components/report/Heating';
+  // import HalfAdded from './components/report/HalfAdded';
+  // import Processing from './components/report/Processing';
+  // import Package from './components/report/Package';
+  // import Warehousing from './components/report/Warehousing';
+  // import Sinter from './components/report/Sinter';
+  // import Furnace from './components/report/Furnace';
   import orderDailog from './components/order-dailog';
   import ChooseMaterial from '@/components/material/ChooseMaterial';
   import { batchSave } from '@/api/produceOrder';
@@ -119,15 +119,6 @@
       personSelectRemote,
       orderDailog,
       ChooseMaterial,
-      Extrusion,
-      Drying,
-      Heating,
-      HalfAdded,
-      Processing,
-      Package,
-      Sinter,
-      Furnace,
-      Warehousing,
       DictSelection
     },
     data () {

+ 46 - 18
src/views/produceOrder/report.vue

@@ -100,7 +100,13 @@
 
     <el-card>
       <el-tabs v-model="activeName" type="card">
-        <el-tab-pane label="挤压成型" name="挤压成型"></el-tab-pane>
+        <el-tab-pane
+          :label="item.name"
+          :name="item.name"
+          v-for="item in tabList"
+          :key="item.key"
+        ></el-tab-pane>
+        <!-- <el-tab-pane label="挤压成型" name="挤压成型"></el-tab-pane>
         <el-tab-pane label="自然干燥" name="自然干燥"></el-tab-pane>
         <el-tab-pane label="升温干燥" name="升温干燥"></el-tab-pane>
         <el-tab-pane label="半加定长" name="半加定长"></el-tab-pane>
@@ -108,21 +114,28 @@
         <el-tab-pane label="烧结" name="烧结"></el-tab-pane>
         <el-tab-pane label="深加工" name="深加工"></el-tab-pane>
         <el-tab-pane label="包装" name="包装"></el-tab-pane>
-        <el-tab-pane label="入库" name="入库"></el-tab-pane>
+        <el-tab-pane label="入库" name="入库"></el-tab-pane> -->
       </el-tabs>
-      <components :is="componentsList[activeName]"></components>
+      <components
+        ref="reportRef"
+        :is="componentsList[activeName] || 'Common'"
+        :key="activeName"
+      ></components>
+      <div class="footer">
+        <el-button type="primary" @click="handleReport">一键报工</el-button>
+      </div>
     </el-card>
   </div>
 </template>
 
 <script>
-  import { getById } from '@/api/produceOrder/index.js';
-  import { getProcessByRoute } from '@/api/mianData/index.js';
+  import { getById, report } from '@/api/produceOrder/index.js';
+  import { getTaskListById } from '@/api/mainData/index.js';
   import Extrusion from './components/report/Extrusion';
   import Drying from './components/report/Drying';
   import Heating from './components/report/Heating';
   import HalfAdded from './components/report/HalfAdded';
-  import Processing from './components/report/Processing';
+  import Common from './components/report/Common';
   import Package from './components/report/Package';
   import Warehousing from './components/report/Warehousing';
   import Sinter from './components/report/Sinter';
@@ -133,7 +146,7 @@
       Drying,
       Heating,
       HalfAdded,
-      Processing,
+      Common,
       Package,
       Sinter,
       Furnace,
@@ -143,7 +156,8 @@
       return {
         infoData: {},
         descriptionsShow: true,
-        activeName: '挤压成型',
+        activeName: '',
+        tabList: [],
         componentsList: {
           挤压成型: 'Extrusion',
           自然干燥: 'Drying',
@@ -151,7 +165,7 @@
           半加定长: 'HalfAdded',
           备炉: 'Furnace',
           烧结: 'Sinter',
-          深加工: 'Processing',
+          深加工: 'Common',
           包装: 'Package',
           入库: 'Warehousing'
         }
@@ -161,20 +175,29 @@
       this.getDetail(this.$route.query.id);
     },
     methods: {
+      handleReport () {
+        this.$refs.reportRef.report(async (data) => {
+          const curIndex = this.tabList.findIndex(
+            (item) => item.name === this.activeName
+          );
+          const params = {
+            lastTaskCode:
+              this.tabList[curIndex > 0 ? curIndex - 1 : curIndex].code,
+            ...data
+          };
+          await report(params);
+        });
+      },
       async getDetail (id) {
         const res = await getById(id);
 
         this.infoData = res;
-      },
-      async getProcess () {
-        const params = {
-          isDetail: false,
-          pageNum: 1,
-          routingId: this.infoData.routingId,
-          size: -1
-        };
+        // 获取工序
+        const res1 = await getTaskListById(res.produceVersionId);
 
-        const res = await getProcessByRoute(params);
+        this.tabList = res1;
+
+        this.activeName = res1[0]?.name || '';
       }
     }
   };
@@ -193,4 +216,9 @@
   .slideDown-icon {
     transform: rotate(90deg);
   }
+
+  .footer {
+    text-align: center;
+    padding: 20px;
+  }
 </style>