Browse Source

调拨单对接完成

sunlupeng 7 months ago
parent
commit
cc5972a51b

+ 50 - 21
src/views/stock/requisition/requisition.vue

@@ -8,11 +8,23 @@
       <el-date-picker v-model="listQuery.endDate" value-format="yyyy-MM-dd" type="date" placeholder="结束日期"
       class="filter-item" style="width:200px">
       </el-date-picker>
-      <el-select v-model="listQuery.warehouseId" clearable placeholder="请选择仓库" class="filter-item" style="width: 200px">
+      <el-select v-model="listQuery.warehouseId" clearable placeholder="调出仓库" class="filter-item" style="width: 200px">
         <el-option :key="item.id" v-for="item in warehouseList" :label="item.warehouseName" :value="item.id">
         </el-option>
       </el-select>
-      <el-select v-model="listQuery.isRunFinish" clearable placeholder="请选择状态" class="filter-item" style="width: 200px">
+      <el-select v-model="listQuery.outHandlerId" clearable filterable placeholder="调出经手人" class="filter-item" style="width: 200px">
+          <el-option :key="item.loginId" v-for="item in userSelsctList" :label="item.deptName+'_'+item.userName" :value="item.loginId">
+          </el-option>
+      </el-select>
+      <el-select v-model="listQuery.warehouseTargetId" clearable placeholder="调入仓库" class="filter-item" style="width: 200px">
+        <el-option :key="item.id" v-for="item in warehouseList" :label="item.warehouseName" :value="item.id">
+        </el-option>
+      </el-select>
+      <el-select v-model="listQuery.addHandlerId" clearable filterable placeholder="调入经手人" class="filter-item" style="width: 200px">
+          <el-option :key="item.loginId" v-for="item in userSelsctList" :label="item.deptName+'_'+item.userName" :value="item.loginId">
+          </el-option>
+      </el-select>
+      <el-select v-model="listQuery.isDelivery" clearable placeholder="发货状态" class="filter-item" style="width: 200px">
         <el-option :key="item.type" v-for="item in typeList" :label="item.name" :value="item.type">
         </el-option>
       </el-select>
@@ -21,7 +33,7 @@
       <el-button class="filter-item" type="primary" @click="handleCreate" icon="el-icon-plus">添加</el-button>
       <!-- <el-button class="filter-item" :loading="downloadLoading" v-waves icon="el-icon-download"
         @click="handleDownload">导出</el-button> -->
-      <!-- <el-button class="filter-item" type="success" icon="el-icon-takeaway-box" @click="executeAll">批量入库</el-button> -->
+      <!-- <el-button class="filter-item" type="success" icon="el-icon-takeaway-box" @click="executeAll">批量调拨</el-button> -->
       <el-button class="filter-item" type="warning" icon="el-icon-delete" @click="delAll">批量删除</el-button>
     </div>
 
@@ -31,30 +43,32 @@
       <el-table-column type="selection" width="55px"> </el-table-column>
       <el-table-column type="index" label="序号" header-align="center" align="center">
       </el-table-column>
-      <el-table-column align="center" min-width="150px" label="入库单号">
+      <el-table-column align="center" min-width="150px" label="调拨单号">
         <template slot-scope="scope">
           <router-link :to="{ name: 'requisitionDetail', params: { id: scope.row.id } }">
             <div style="color: #337ab7;cursor: pointer;">{{ scope.row.serialCode }}</div>
           </router-link>
         </template>
       </el-table-column>
-      <el-table-column align="center" min-width="100px" label="入库时间" prop="serialDate">
+      <el-table-column align="center" min-width="100px" label="调拨时间" prop="serialDate">
+      </el-table-column>
+      <el-table-column align="center" min-width="100px" label="调出仓库" prop="warehouseName">
       </el-table-column>
-      <el-table-column align="center" min-width="100px" label="供应商" prop="supplierName">
+      <el-table-column align="center" min-width="100px" label="调出经手人" prop="outHandlerName">
       </el-table-column>
-      <el-table-column align="center" min-width="100px" label="仓库" prop="warehouseName">
+      <el-table-column align="center" min-width="100px" label="调入仓库" prop="warehouseTargetName">
       </el-table-column>
-      <el-table-column align="center" min-width="100px" label="经手人" prop="addHandlerName">
+      <el-table-column align="center" min-width="100px" label="调入经手人" prop="addHandlerName">
       </el-table-column>
-      <el-table-column align="center" min-width="100px" label="入库状态">
+      <el-table-column align="center" min-width="100px" label="调拨状态">
         <template slot-scope="props">
-            <span v-if="props.row.isRunFinish == '0'" style="color: #67C23A;font-weight: bold;">已入库</span>
-            <span v-if="props.row.isRunFinish == '1'" style="color: #E6A23C;font-weight: bold;">待入库</span>
+            <span v-if="props.row.isDelivery == '0'" style="color: #67C23A;font-weight: bold;">已发货</span>
+            <span v-if="props.row.isDelivery == '1'" style="color: #E6A23C;font-weight: bold;">待发货</span>
           </template>
       </el-table-column>
       <el-table-column align="center" label="操作" width="240px" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button v-if="scope.row.isRunFinish == '1'" type="success" size="small" @click="handleExecute(scope.row)">入库</el-button>
+          <el-button v-if="scope.row.isDelivery == '1'" type="success" size="small" @click="handleExecute(scope.row)">发货</el-button>
           <el-button type="primary" size="small" @click="handleUpdate(scope.row)">编辑</el-button>
           <el-button type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
         </template>
@@ -73,6 +87,7 @@
 <script>
 import { listRequisition, deleteRequisition, executeRequisition } from "@/api/requisition";
 import { warehouseList } from "@/api/warehouse";
+import { allUserList } from "@/api/public";
 import waves from "@/directive/waves"; // 水波纹指令
 
 export default {
@@ -81,14 +96,15 @@ export default {
     return {
       downloadLoading: false,
       warehouseList: [],
+      userSelsctList:[],
       typeList: [
         {
           type: '0',
-          name: "已入库",
+          name: "已发货",
         },
         {
           type: '1',
-          name: "待入库",
+          name: "待发货",
         },
       ],
       list: [
@@ -104,12 +120,16 @@ export default {
         startDate: '',
         endDate: '',
         warehouseId: '',
-        isRunFinish: '',
+        outHandlerId: '',
+        warehouseTargetId: '',
+        addHandlerId: '',
+        isDelivery: '',
       },
     }
   },
   created() {
     this.getStoreList();
+    this.getAllUserList(); 
     this.getList();
   },
   methods: {
@@ -119,6 +139,12 @@ export default {
         this.warehouseList = response.data.data;
       }).catch(() => { });
     },
+    /** 获取人员列表数据 */
+    getAllUserList() {
+      allUserList().then(response => {
+        this.userSelsctList = response.data.data;
+      }).catch(() => { });
+    },
     /** 重置按钮操作 */
     resetQuery() {
       this.listQuery = {
@@ -127,7 +153,10 @@ export default {
         startDate: '',
         endDate: '',
         warehouseId: '',
-        isRunFinish: '',
+        outHandlerId: '',
+        warehouseTargetId: '',
+        addHandlerId: '',
+        isDelivery: '',
       },
         this.getList()
     },
@@ -181,7 +210,7 @@ export default {
       })
     },
     handleExecute(row) {
-      this.$confirm('确认入库吗?', '提示', {
+      this.$confirm('确认调拨吗?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
@@ -189,7 +218,7 @@ export default {
         executeRequisition({ ids: row.id }).then(response => {
           this.$notify({
             title: '成功',
-            message: '入库成功',
+            message: '调拨成功',
             type: 'success',
             duration: 2000
           })
@@ -200,7 +229,7 @@ export default {
     executeAll() {
       const length = this.multipleSelection.length;
       if (length > 0) {
-        this.$confirm("确认入库吗?", "提示", {
+        this.$confirm("确认调拨吗?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning",
@@ -212,7 +241,7 @@ export default {
           executeRequisition({ ids: ids }).then(() => {
             this.$notify({
               title: "成功",
-              message: "入库成功",
+              message: "调拨成功",
               type: "success",
               duration: 2000,
             });
@@ -222,7 +251,7 @@ export default {
       } else {
         this.$notify({
           title: "提示",
-          message: "请选择要入库的信息!",
+          message: "请选择要调拨的信息!",
           type: "warning",
         });
       }

+ 47 - 35
src/views/stock/requisition/requisitionAdd.vue

@@ -1,49 +1,50 @@
 <template>
     <div class="app-container">
         <el-form ref="dataForm" :model="dataForm" :rules="rules" label-width="120px" inline>
-            <h3>通用入库单</h3>
-            <!-- <el-form-item label="名称" prop="name">
-                <el-input v-model="dataForm.name" :minlength="2" :maxlength="20" clearable
-                    placeholder="请输入名称" style="width:200px" :disabled="type === 'detail'"></el-input>
-            </el-form-item> -->
-            <el-form-item label="入库时间" prop="serialDate">
+            <h3>调拨单</h3>
+            <el-form-item label="调拨时间" prop="serialDate">
                 <el-date-picker v-model="dataForm.serialDate" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
                     placeholder="选择日期时间" style="width:200px" :disabled="type === 'detail'">
                 </el-date-picker>
             </el-form-item>
-            <el-form-item label="供应商" prop="supplierId">
-                <el-select v-model="dataForm.supplierId" clearable placeholder="请选择" style="width: 200px;" :disabled="type === 'detail'">
-                    <el-option :key="item.id" v-for="item in supplierList" :label="item.businessName" :value="item.id">
+            <el-form-item label="调出仓库" prop="warehouseId">
+                <el-select v-model="dataForm.warehouseId" clearable placeholder="请选择" style="width: 200px;" :disabled="type === 'detail'">
+                    <el-option :key="item.id" v-for="item in warehouseList" :label="item.warehouseName" :value="item.id">
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="仓库" prop="warehouseId">
-                <el-select v-model="dataForm.warehouseId" clearable placeholder="请选择" style="width: 200px;" :disabled="type === 'detail'">
+            <el-form-item label="调出经手人" prop="outHandlerId">
+                <el-select v-model="dataForm.outHandlerId" clearable filterable placeholder="请选择" style="width: 200px" :disabled="type === 'detail'">
+                    <el-option :key="item.loginId" v-for="item in userSelsctList" :label="item.deptName+'_'+item.userName" :value="item.loginId">
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="调入仓库" prop="warehouseTargetId">
+                <el-select v-model="dataForm.warehouseTargetId" clearable placeholder="请选择" style="width: 200px;" :disabled="type === 'detail'">
                     <el-option :key="item.id" v-for="item in warehouseList" :label="item.warehouseName" :value="item.id">
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="经手人" prop="addHandlerId">
+            <el-form-item label="调入经手人" prop="addHandlerId">
                 <el-select v-model="dataForm.addHandlerId" clearable filterable placeholder="请选择" style="width: 200px" :disabled="type === 'detail'">
-                    <el-option :key="item.loginId" v-for="item in recipientsList" :label="item.deptName+'_'+item.userName" :value="item.loginId">
+                    <el-option :key="item.loginId" v-for="item in userSelsctList" :label="item.deptName+'_'+item.userName" :value="item.loginId">
                     </el-option>
                 </el-select>
             </el-form-item>
-            
-
-            <!-- <el-form-item label="采购说明" prop="desc">
-                <el-input style="width:535px" v-model="dataForm.desc" :maxlength="120"
+            <el-form-item label="备注" prop="remarks">
+                <el-input style="width:535px" v-model="dataForm.remarks" :maxlength="120"
                     type="textarea" :disabled="type === 'detail'" :autosize="{ minRows: 1, maxRows: 4 }"
-                    placeholder="请输入采购说明 最大120字"></el-input>
-            </el-form-item> -->
-            <el-form-item label="附件:" prop="fileIds">
+                    placeholder="请输入备注 最大120字"></el-input>
+            </el-form-item>
+            <el-form-item label="附件" prop="fileIds">
                 <el-upload :limit="1" :action="fileUrl" :file-list="dataForm.fileList" :on-success="handleFileSuccess"
                     :before-upload="beforeUploadFile" :on-remove="handleRemove">
                     <el-button size="small" type="primary" :disabled="type === 'detail'">点击上传</el-button>
                 </el-upload>
             </el-form-item>
+            
             <div class="mx">
-        <h3>入库明细</h3>
+        <h3>调拨明细</h3>
         <el-button size="small" type="primary" v-if="type !== 'detail'"
           @click="handleSelectGoods" icon="el-icon-plus">商品/物料</el-button>
       </div>
@@ -69,19 +70,19 @@
                 {{ scope.row.createProductNumber }}
               </template>
             </el-table-column>
-            <el-table-column label="入库数量">
+            <el-table-column label="调拨数量">
               <template slot-scope="scope">
-                <el-form-item v-if="type !== 'detail'" :prop="'inventoryEntryInfos.'+scope.$index+'.updateNumber'" :rules="{ required: true, message: '入库数量不能为空', trigger: 'blur' }" class="tableFormItem">
-                    <el-input-number v-model="scope.row.updateNumber" @change="handleChange(scope.row)" size="small" :min="1" :max="10000" label="入库数量"></el-input-number>
+                <el-form-item v-if="type !== 'detail'" :prop="'inventoryEntryInfos.'+scope.$index+'.updateNumber'" :rules="{ required: true, message: '调拨数量不能为空', trigger: 'blur' }" class="tableFormItem">
+                    <el-input-number v-model="scope.row.updateNumber" @change="handleChange(scope.row)" size="small" :min="1" :max="10000" label="调拨数量"></el-input-number>
                 </el-form-item>
                 <span v-else>{{ scope.row.updateNumber }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="合计(¥)">
+            <!-- <el-table-column label="合计(¥)">
               <template slot-scope="scope">
                 {{ scope.row.sumPrice.toFixed(2) }}
               </template>
-            </el-table-column>
+            </el-table-column> -->
             <!-- <el-table-column label="备注">
               <template slot-scope="scope">
                 <el-input :maxlength="99" v-model="scope.row.remark" :disabled="type === 'detail'" />
@@ -115,7 +116,7 @@ export default {
     data() {
         return {
             fileUrl:this.upLoadUrl,
-            recipientsList:[],
+            userSelsctList:[],
             supplierList: [],
             warehouseList: [],
             id: '',
@@ -123,22 +124,30 @@ export default {
             /** 表单*/
             dataForm: {
                 serialDate:'',
-                supplierId:undefined,
                 warehouseId:undefined,
+                outHandlerId:undefined,
+                warehouseTargetId:undefined,
                 addHandlerId:undefined,
                 fileIds:undefined,
                 fileList: [],
+                remarks:undefined,
                 inventoryEntryInfos: []
             },
             rules: {
                 serialDate: [
-                    { required: true, message: '请选择入库时间', trigger: 'blur' }
+                    { required: true, message: '请选择调拨时间', trigger: 'blur' }
                 ],
                 warehouseId: [
-                    { required: true, message: '请选择仓库', trigger: 'blur' }
+                    { required: true, message: '请选择调出仓库', trigger: 'blur' }
+                ],
+                outHandlerId: [
+                    { required: true, message: '请选择调出经手人', trigger: 'blur' }
+                ],
+                warehouseTargetId: [
+                    { required: true, message: '请选择调入仓库', trigger: 'blur' }
                 ],
                 addHandlerId: [
-                    { required: true, message: '请选择经手人', trigger: 'blur' }
+                    { required: true, message: '请选择调入经手人', trigger: 'blur' }
                 ],
             },
         }
@@ -149,12 +158,14 @@ export default {
             handler(newVal) {
                 if (this.$route.name === 'requisitionAdd') {
                     this.dataForm = {
-                        serialDate:undefined,
-                        supplierId:undefined,
+                        serialDate:'',
                         warehouseId:undefined,
+                        outHandlerId:undefined,
+                        warehouseTargetId:undefined,
                         addHandlerId:undefined,
                         fileIds:undefined,
                         fileList: [],
+                        remarks:undefined,
                         inventoryEntryInfos: []
                     }
                 } else if (this.$route.name === 'requisitionDetail') {
@@ -188,7 +199,7 @@ export default {
         /** 获取人员列表数据 */
         getAllUserList() {
             allUserList().then(response => {
-                this.recipientsList = response.data.data;
+                this.userSelsctList = response.data.data;
             }).catch(() => { });
         },
         /** 获取详情页面数据 */
@@ -198,12 +209,13 @@ export default {
                 dataForm.inventoryEntryInfos = dataForm.inventoryEntryInfos == null ? [] : dataForm.inventoryEntryInfos
                 dataForm.inventoryOutInfos = dataForm.inventoryOutInfos == null ? [] : dataForm.inventoryOutInfos
                 this.dataForm = dataForm;
+                this.dataForm.fileList = dataForm.files == null ? [] : dataForm.files;
             }).catch(() => {})
         },
          // 选择商品
         async handleSelectGoods() {
             if (!this.dataForm.warehouseId) {
-                this.$message.error('请先选择仓库!')
+                this.$message.error('请先选择调出仓库!')
                 return
             }else{
                 console.log(this.dataForm.inventoryEntryInfos)