ysy 1 год назад
Родитель
Сommit
8072792fdd

+ 13 - 0
src/api/materialReturn/index.js

@@ -0,0 +1,13 @@
+import request from '@/utils/request';
+
+
+/**
+ * 列表
+ */
+export async function returnPage(params) {
+  const res = await request.get('/mes/returnmaterials/page',  { params });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 85 - 0
src/views/materialReturn/components/return-search.vue

@@ -0,0 +1,85 @@
+<!-- 搜索表单 -->
+<template>
+  <el-form
+    label-width="90px"
+    class="ele-form-search"
+    @keyup.enter.native="search"
+    @submit.native.prevent
+  >
+    <el-row :gutter="15">
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="退料单:">
+          <el-input
+            size="mini"
+            clearable
+            v-model="where.code"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
+
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label-width="0px">
+          <el-button
+            size="mini"
+            type="primary"
+            icon="el-icon-search"
+            class="ele-btn-icon"
+            @click="search"
+          >
+            查询
+          </el-button>
+          <el-button
+            size="mini"
+            @click="reset"
+            icon="el-icon-refresh-left"
+            type="primary"
+            >重置</el-button
+          >
+        </el-form-item>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+
+<script>
+  export default {
+    props: [],
+    data() {
+      // 默认表单数据
+      const defaultWhere = {
+        code: ''
+      };
+      return {
+        // 表单数据
+        where: { ...defaultWhere }
+      };
+    },
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
+    },
+    watch: {},
+    created() {},
+    methods: {
+      /* 搜索 */
+      search() {
+        this.$emit('search', this.where);
+      },
+      /*  重置 */
+      reset() {
+        this.where = { ...this.defaultWhere };
+        this.search();
+      }
+    }
+  };
+</script>
+<style lang="scss" scoped>
+  .ele-form-actions {
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+  }
+</style>

+ 74 - 0
src/views/materialReturn/components/returnPop.vue

@@ -0,0 +1,74 @@
+<template>
+  <el-dialog
+    title="新建退料单"
+    :visible.sync="visible"
+    :before-close="handleClose"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    width="80%"
+  >
+    <div>
+      <el-form :model="returnForm" ref="returnForm">
+        <el-row :gutter="24">
+          <el-col :span="6">
+            <el-form-item label="退料单编号" prop="code" label-width="90px">
+              <el-input v-model="returnForm.code" disabled=""></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="6">
+            <el-form-item label="退料单名称" prop="name" label-width="90px">
+              <el-input v-model="returnForm.name"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="8">
+            <el-form-item label="退料场景" prop="scene" label-width="90px">
+              <el-input v-model="returnForm.scene"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="4">
+            <el-button type="primary" @click="selectOrder"
+              >选择领料单</el-button
+            >
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+  import { getCode } from '@/api/produce/workOrder';
+  export default {
+    data() {
+      return {
+        visible: true,
+
+        returnForm: {
+          code: '',
+          name: '',
+          scene: ''
+        }
+      };
+    },
+
+    created() {
+      this.getOrderCode();
+    },
+
+    methods: {
+      async getOrderCode() {
+        this.returnForm.code = await getCode('return_materials_code');
+      },
+
+      selectOrder() {},
+
+      handleClose() {
+        this.$emit('close');
+      }
+    }
+  };
+</script>

+ 154 - 0
src/views/materialReturn/index.vue

@@ -0,0 +1,154 @@
+<template>
+  <div class="ele-body">
+    <el-card shadow="never" v-loading="loading">
+      <return-search @search="reload" ref="searchRef"> </return-search>
+
+      <!-- 数据表格 -->
+      <ele-pro-table
+        ref="table"
+        :columns="columns"
+        :datasource="datasource"
+        row-key="id"
+        cache-key="returnKey"
+        :selection.sync="selection"
+      >
+        <template v-slot:toolbar>
+          <el-button type="primary" size="mini" @click="handleReturn"
+            >新建</el-button
+          >
+        </template>
+
+        <template v-slot:type="{ row }">
+          <el-tag
+            :type="
+              row.type == '0' ? 'danger' : row.type == '1' ? '' : 'success'
+            "
+            effect="dark"
+            >{{
+              row.type == '0'
+                ? '未领料'
+                : row.type == '1'
+                ? '领料中'
+                : row.type == '2'
+                ? '已出库'
+                : ''
+            }}</el-tag
+          >
+        </template>
+
+        <template v-slot:action="{ row }">
+          <el-button type="text" size="mini" @click="handDetailed(row)"
+            >详情</el-button
+          >
+        </template>
+      </ele-pro-table>
+    </el-card>
+
+    <returnPop v-if="returnShow" @close="close"></returnPop>
+  </div>
+</template>
+
+<script>
+  import { returnPage } from '@/api/materialReturn/index.js';
+
+  import returnSearch from './components/return-search.vue';
+
+  import returnPop from './components/returnPop.vue';
+
+  export default {
+    components: {
+      returnSearch,
+      returnPop
+    },
+    data() {
+      return {
+        // 加载状态
+        loading: false,
+        selection: [],
+
+        returnShow: false
+      };
+    },
+    computed: {
+      columns() {
+        return [
+          {
+            prop: 'code',
+            label: '退料单编号',
+            align: 'center'
+          },
+
+          {
+            prop: 'name',
+            label: '退料单名称',
+            align: 'center'
+          },
+
+          {
+            prop: 'scene',
+            label: '退料场景',
+            align: 'center'
+          },
+
+          {
+            prop: 'executorName',
+            label: '退料人',
+            align: 'center'
+          },
+
+          {
+            prop: 'executorTime',
+            label: '退料时间',
+            align: 'center'
+          },
+          {
+            prop: 'type',
+            slot: 'type',
+            label: '退料类型',
+            align: 'center'
+          },
+
+          {
+            prop: '',
+            label: '操作',
+            width: 80,
+            align: 'center',
+            resizable: false,
+            fixed: 'right',
+            slot: 'action'
+          }
+        ];
+      }
+    },
+    created() {},
+    methods: {
+      /* 表格数据源 */
+      async datasource({ page, limit, where }) {
+        let res = await returnPage({
+          ...where,
+
+          pageNum: page,
+          size: limit
+        });
+
+        return res;
+      },
+
+      handleReturn() {
+        this.returnShow = true;
+      },
+
+      close(val) {
+    if (val) {
+       this.reload()
+      }
+      this.returnShow = false;
+    },
+
+      /* 刷新表格 */
+      reload(where = {}) {
+        this.$refs.table.reload({ page: 1, where });
+      }
+    }
+  };
+</script>

+ 94 - 55
src/views/pick/pickApply/components/pick-search.vue

@@ -1,68 +1,109 @@
 <!-- 搜索表单 -->
 <template>
-    <el-form label-width="90px" class="ele-form-search"    @keyup.enter.native="search"
-    @submit.native.prevent>
-        <el-row :gutter="15">
-            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-                <el-form-item label="领料单:">
-                    <el-input size="mini" clearable v-model="where.workOrderId" placeholder="请输入" />
-                </el-form-item>
-            </el-col>
+  <el-form
+    label-width="90px"
+    class="ele-form-search"
+    @keyup.enter.native="search"
+    @submit.native.prevent
+  >
+    <el-row :gutter="15">
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="领料单:">
+          <el-input
+            size="mini"
+            clearable
+            v-model="where.workOrderId"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
 
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="工单号:">
+          <el-input
+            size="mini"
+            clearable
+            v-model="where.joinWorkOrderCode"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
 
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="状态:">
+          <el-select size="mini" v-model="where.status" style="width: 100%">
+            <el-option
+              v-for="item in statusList"
+              :key="item.value"
+              :value="item.value"
+              :label="item.label"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-col>
 
-            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-                <el-form-item label="工单号:">
-                    <el-input size="mini"  clearable v-model="where.name" placeholder="请输入" />
-                </el-form-item>
-            </el-col>
-
-
-
-
-            <el-col  v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-                <el-form-item label-width="0px">
-                    <el-button size="mini" type="primary" icon="el-icon-search" class="ele-btn-icon"   @click="search">
-                        查询
-                    </el-button>
-                    <el-button size="mini" @click="reset" icon="el-icon-refresh-left" type="primary">重置</el-button>
-                </el-form-item>
-            </el-col>
-        </el-row>
-    </el-form>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label-width="0px">
+          <el-button
+            size="mini"
+            type="primary"
+            icon="el-icon-search"
+            class="ele-btn-icon"
+            @click="search"
+          >
+            查询
+          </el-button>
+          <el-button
+            size="mini"
+            @click="reset"
+            icon="el-icon-refresh-left"
+            type="primary"
+            >重置</el-button
+          >
+        </el-form-item>
+      </el-col>
+    </el-row>
+  </el-form>
 </template>
 
 <script>
-
-export default {
+  export default {
     props: [],
     data() {
-        // 默认表单数据
-        const defaultWhere = {
-            workOrderId: '',
-            name: '',
-            code: ''
-
-
-        };
-        return {
-            // 表单数据
-            where: { ...defaultWhere },
-
-        };
+      // 默认表单数据
+      const defaultWhere = {
+        workOrderId: '',
+        joinWorkOrderCode: '',
+        status: ''
+      };
+      return {
+        // 表单数据
+        where: { ...defaultWhere },
+        statusList: [
+          {
+            value: '0',
+            label: '未领料'
+          },
+          {
+            value: '1',
+            label: '领料中'
+          },
+          {
+            value: '2',
+            label: '已出库'
+          }
+        ]
+      };
     },
     computed: {
-        // 是否开启响应式布局
-        styleResponsive() {
-            return this.$store.state.theme.styleResponsive;
-        }
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
     },
     watch: {},
-    created() {
-
-    },
+    created() {},
     methods: {
-    
       /* 搜索 */
       search() {
         this.$emit('search', this.where);
@@ -72,15 +113,13 @@ export default {
         this.where = { ...this.defaultWhere };
         this.search();
       }
-
-
     }
-};
+  };
 </script>
 <style lang="scss" scoped>
-.ele-form-actions {
+  .ele-form-actions {
     display: flex;
     align-items: center;
     justify-content: flex-end;
-}
+  }
 </style>