Просмотр исходного кода

京东退货增加excel导入、库存管理页面增加2个字段

cz 2 лет назад
Родитель
Сommit
e704afc4ee

+ 2 - 2
src/api/order-management/JDReturnGoods/index.js

@@ -3,7 +3,7 @@ import request from '@/router/axios'
 // 京东退货列表 
 export function JDreGoodsList(data = {}) {
   return request({
-    url: '/api/victoriatourist/jdBack/page',
+    url: '/api/victoriatourist/newJdBack/page',
     method: 'post',
     data: data,
   })
@@ -30,7 +30,7 @@ export function JDreGoodsEdit(data = {}) {
 // 详情
 export function JDreGoodsDetails(data = {}) {
   return request({
-    url: '/api/victoriatourist/jdBack/details',
+    url: '/api/victoriatourist/newJdBack/details',
     method: 'post',
     data: data,
   })

+ 1 - 0
src/views/inbound-outbound/abnormalManage/index.vue

@@ -258,6 +258,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/inbound-outbound/arrivalInspection/index.vue

@@ -271,6 +271,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/inbound-outbound/flow/index.vue

@@ -242,6 +242,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/inbound-outbound/inbound/cgInbound/index.vue

@@ -305,6 +305,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/inbound-outbound/inbound/manualInbound/index.vue

@@ -225,6 +225,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/inbound-outbound/inbound/qualityTesting.vue

@@ -326,6 +326,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/inbound-outbound/outbound/manualOutbound/index.vue

@@ -232,6 +232,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/inbound-outbound/transfer/index.vue

@@ -307,6 +307,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/inventory-management/check/index.vue

@@ -282,6 +282,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/inventory-management/combination/index.vue

@@ -185,6 +185,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 23 - 2
src/views/inventory-management/query/index.vue

@@ -142,7 +142,17 @@ export default {
           <el-table-column label="产品名称" align="left" prop="productName" />
           <el-table-column label="规格" align="left" prop="productSpecs" />
           <el-table-column label="单位" align="left" prop="productUnit" />
-          <el-table-column label="库存数量" align="left" prop="quantity" />
+          <el-table-column label="可用库存" align="left" prop="quantity" />
+          <el-table-column
+            label="冻结库存"
+            align="left"
+            prop="frozenQuantity"
+          />
+          <el-table-column
+            label="次品库存"
+            align="left"
+            prop="defectiveQuantity"
+          />
           <!-- <el-table-column label="查看" align="left">
             <template>
               <el-button type="text" @click="deleteRow(scope.$index)"
@@ -176,7 +186,18 @@ export default {
           <el-table-column label="产品名称" align="left" prop="productName" />
           <el-table-column label="规格" align="left" prop="productSpecs" />
           <el-table-column label="单位" align="left" prop="productUnit" />
-          <el-table-column label="库存数量" align="left" prop="quantity" />
+          <el-table-column label="可用库存" align="left" prop="quantity" />
+          <el-table-column
+            label="冻结库存"
+            align="left"
+            prop="frozenQuantity"
+          />
+          <el-table-column
+            label="次品库存"
+            align="left"
+            prop="defectiveQuantity"
+          />
+
           <!-- <el-table-column label="查看" align="left">
             <template>
               <el-button type="text" @click="deleteRow(scope.$index)"

+ 49 - 7
src/views/order-management/JDReturnGoods/addReturnGoods.vue

@@ -9,7 +9,7 @@
         label-width="100px"
       >
         <el-row :gutter="10">
-          <el-col :span="6">
+          <!-- <el-col :span="6">
             <el-form-item label="订单编号" prop="jdBackOrderId">
               <el-select
                 v-model="form.jdBackOrderId"
@@ -26,13 +26,14 @@
                 </el-option>
               </el-select>
             </el-form-item>
-          </el-col>
+          </el-col> -->
           <el-col :span="6">
             <el-form-item label="仓库名称" prop="warehouseId">
               <el-select
                 v-model="form.warehouseId"
                 placeholder="请选择"
                 style="width: 100%"
+                :disabled="showType === 'details'"
               >
                 <el-option
                   v-for="item in warehouseSelectList"
@@ -52,12 +53,13 @@
           </el-col>
         </el-row>
         <el-row :gutter="10">
-          <el-col :span="6">
+          <el-col :span="6" v-if="showType !== 'details'">
             <el-form-item label="物流信息" prop="logisticsCompanyCode">
               <el-select
                 v-model="form.logisticsCompanyCode"
                 placeholder="请选择"
                 style="width: 100%"
+                :disabled="showType === 'details'"
               >
                 <el-option
                   v-for="item in logisticsData"
@@ -74,6 +76,7 @@
               <el-input
                 v-model="form.code"
                 placeholder="物流/快递单号"
+                :disabled="showType === 'details'"
               ></el-input>
             </el-form-item>
           </el-col>
@@ -82,13 +85,16 @@
         <div style="margin-bottom: 20px">
           <labelTitle content="退货明细"></labelTitle>
         </div>
-        <el-form-item label-width="0px">
+        <el-form-item label-width="0px" v-if="showType !== 'details'">
           <el-button type="primary" size="mini" @click="handleAddProduct">
             添加产品</el-button
           >
         </el-form-item>
         <el-form-item>
-          <el-table :data="form.logisticsDetailsList">
+          <el-table
+            :data="form.logisticsDetailsList"
+            v-if="showType !== 'details'"
+          >
             <el-table-column label="产品类型" prop="classifyName">
             </el-table-column>
             <el-table-column label="产品编码" prop="productCode">
@@ -109,6 +115,7 @@
                     v-model="scope.row.shipmentQuantity"
                     placeholder="请输入"
                     size="mini"
+                    :disabled="showType === 'details'"
                   >
                   </el-input>
                 </el-form-item>
@@ -123,10 +130,28 @@
               </template>
             </el-table-column>
           </el-table>
+          <el-table
+            :data="form.logisticsDetailsList"
+            v-if="showType === 'details'"
+          >
+            <el-table-column label="退货单号" prop="backCode" />
+            <el-table-column label="申请时间" prop="applicationTime" />
+            <el-table-column label="备件条码" prop="spareParts" />
+            <el-table-column label="UPC码" prop="upcCode" />
+            <el-table-column label="商品编号" prop="productCode" />
+            <el-table-column label="商品名称" prop="productName" />
+            <el-table-column label="备件库" prop="sparePartsStore" />
+            <!-- <el-table-column label="运单号" prop="waybill" /> -->
+            <!-- <el-table-column label="确认收货时间" prop="arrivalTime" /> -->
+            <!-- <el-table-column label="备注" prop="remark" /> -->
+          </el-table>
         </el-form-item>
       </el-form>
     </div>
-    <div style="text-align: center; margin-top: 15px">
+    <div
+      style="text-align: center; margin-top: 15px"
+      v-if="showType !== 'details'"
+    >
       <el-button size="small" @click="handleCancel">取消 </el-button>
       <el-button type="primary" size="small" @click="handleSubmit">
         确定</el-button
@@ -160,6 +185,9 @@ export default {
       type: Object,
       default: () => {},
     },
+    showType: {
+      type: String,
+    },
   },
   data() {
     return {
@@ -172,6 +200,20 @@ export default {
             trigger: "change",
           },
         ],
+        logisticsCompanyCode: [
+          {
+            required: true,
+            message: "请选择物流信息",
+            trigger: "change",
+          },
+        ],
+        code: [
+          {
+            required: true,
+            message: "请输入物流/快递单号",
+            trigger: "blur",
+          },
+        ],
         shipmentQuantity: [
           {
             required: true,
@@ -244,7 +286,7 @@ export default {
     },
 
     handleAddProduct() {
-      if (!this.form.warehouseId) return this.msgInfo("请先选择仓库");
+      // if (!this.form.warehouseId) return this.msgInfo("请先选择仓库");
       this.selectDialog = true;
     },
     handleSelect(row) {

+ 157 - 6
src/views/order-management/JDReturnGoods/index.vue

@@ -6,6 +6,9 @@ import query from "@/components/query/index.vue";
 import addReturnGoods from "./addReturnGoods.vue";
 import * as API from "@/api/order-management/JDReturnGoods/index.js";
 
+import { warehouseSelectList } from "@/api/product-material/warehouse/index.js";
+import { getToken } from "@/util/auth";
+
 export default {
   components: {
     test,
@@ -14,6 +17,10 @@ export default {
   },
   data() {
     return {
+      uploadHeader: {
+        Authorization: "Basic c2FiZXI6c2FiZXJfc2VjcmV0",
+        "Blade-Auth": "bearer " + getToken(),
+      },
       returnGoodsStatusList: [],
       btnForm: {
         otherButton: {
@@ -26,6 +33,14 @@ export default {
                 this.handleAdd();
               },
             },
+            {
+              name: "Excel导入",
+              methodsText: "excel",
+              type: "primary",
+              excel: () => {
+                this.excelImport();
+              },
+            },
           ],
         },
       },
@@ -41,6 +56,11 @@ export default {
           prop: "jdBackStatus",
           data: [],
         },
+        {
+          label: "仓库名称",
+          prop: "warehouseId",
+          data: [],
+        },
       ],
       tableList: [],
       total: 0,
@@ -55,9 +75,22 @@ export default {
         logisticsCompanyCode: "",
         logisticsDetailsList: [],
       },
+      showType: "",
+      openExcel: false,
+      excelForm: {},
+      warehouseTypeList: [],
+      warehouseSelectList: [],
+      excelLoading: false,
     };
   },
   created() {
+    warehouseSelectList().then((res) => {
+      this.warehouseSelectList = res.data.data;
+      this.selectConfig[1].data = this.warehouseSelectList.map((item) => ({
+        label: item.name,
+        value: item.id,
+      }));
+    });
     const businessDictData = JSON.parse(
       window.localStorage.getItem("businessDict")
     );
@@ -69,6 +102,10 @@ export default {
       value: item.dictKey,
     }));
 
+    this.warehouseTypeList = businessDictData.find(
+      (item) => item.code === "warehouseType"
+    ).children;
+
     this.getList();
   },
   methods: {
@@ -90,6 +127,7 @@ export default {
       this.getList();
     },
     handleAdd() {
+      this.showType = "add";
       this.titleText = "新建退货";
       this.form = {
         warehouseId: "",
@@ -101,14 +139,21 @@ export default {
       };
       this.open = true;
     },
+
     handleEdit(row) {
+      this.showType = "";
       this.titleText = "编辑退货";
       this.open = true;
       this.$nextTick(() => {
         this.$refs.addReturnGoods.loading = true;
         API.JDreGoodsDetails({ id: row.id }).then((res) => {
           this.form = res.data.data;
-
+          if (this.form.jdBackOrderId === -1) {
+            this.form.jdBackOrderId = "";
+          }
+          if (this.form.jdBackOrderCode === -1) {
+            this.form.jdBackOrderCode = "";
+          }
           this.$refs.addReturnGoods.loading = false;
         });
       });
@@ -159,6 +204,44 @@ export default {
         );
       }
     },
+    handleLookDetails(row) {
+      this.showType = "details";
+      this.titleText = "退货详情";
+      this.open = true;
+      this.$nextTick(() => {
+        this.$refs.addReturnGoods.loading = true;
+        API.JDreGoodsDetails({ id: row.id }).then((res) => {
+          this.form = res.data.data;
+          this.form = {
+            warehouseId: row.warehouseId,
+            code: row.waybill,
+            logisticsDetailsList: res.data.data,
+          };
+          this.$refs.addReturnGoods.loading = false;
+        });
+      });
+    },
+    handleProgress() {
+      this.excelLoading = true;
+    },
+    handleError(err) {
+      this.msgInfo(`${err} , 请重试`);
+      this.openExcel = false;
+      this.excelLoading = false;
+    },
+    handleSuccess() {
+      this.msgSuccess("导入成功! ");
+      setTimeout(() => {
+        this.excelLoading = false;
+        this.openExcel = false;
+      }, 300);
+    },
+    excelImport() {
+      this.openExcel = true;
+      this.excelForm = {
+        warehouseId: "",
+      };
+    },
   },
 };
 </script>
@@ -182,16 +265,29 @@ export default {
         "
       ></query>
       <el-table :data="tableList" v-loading="loading">
-        <el-table-column label="订单编号" align="left" prop="jdBackOrderCode" />
-        <el-table-column label="退货时间" align="left" prop="createTime" />
-        <el-table-column label="物流单号" align="left" prop="code" />
-        <el-table-column
+        <el-table-column label="仓库名称" align="left" prop="warehouseName" />
+        <el-table-column label="导入时间" align="left" prop="createTime" />
+        <el-table-column label="物流单号" align="left" prop="waybill">
+          <template slot-scope="scope">
+            <div
+              style="
+                color: #0084ff;
+                cursor: pointer;
+                text-decoration: underline;
+              "
+              @click="handleLookDetails(scope.row)"
+            >
+              {{ scope.row.waybill }}
+            </div>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column
           label="物流公司编码"
           align="left"
           prop="logisticsCompanyCode"
         />
         <el-table-column label="物流公司名称" align="left" prop="companyName" />
-        <el-table-column label="仓库名称" align="left" prop="warehouseName" />
+        <el-table-column label="仓库名称" align="left" prop="warehouseName" /> -->
         <el-table-column
           label="状态"
           align="left"
@@ -237,11 +333,65 @@ export default {
     >
       <add-return-goods
         :form="form"
+        :showType="showType"
         @submit="handleSubmit"
         @cancel="handleCancel"
         ref="addReturnGoods"
       ></add-return-goods>
     </el-dialog>
+
+    <el-dialog
+      title="Excel导入(导入前请先选择仓库)"
+      :visible.sync="openExcel"
+      v-if="openExcel"
+      width="40%"
+      top="20vh"
+      v-loading="excelLoading"
+      element-loading-text="文件导入中,请稍后!"
+      element-loading-spinner="el-icon-loading"
+      element-loading-background="rgba(0, 0, 0, 0.2)"
+    >
+      <el-form
+        label-position="right"
+        :model="excelForm"
+        ref="excelForm"
+        label-width="80px"
+      >
+        <el-form-item label="仓库名称" prop="warehouseId">
+          <el-select
+            v-model="excelForm.warehouseId"
+            placeholder="请选择"
+            style="width: 100%"
+          >
+            <el-option
+              v-for="item in warehouseSelectList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            >
+              <span style="float: left">{{
+                `${item.name}(${dictDataEcho(item.type, warehouseTypeList)})`
+              }}</span>
+            </el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="Excel" v-if="excelForm.warehouseId">
+          <el-upload
+            action="/api/victoriatourist/newJdBack/excelImport"
+            :data="excelForm"
+            :headers="uploadHeader"
+            :on-success="handleSuccess"
+            :on-progress="handleProgress"
+            :show-file-list="false"
+            :on-error="handleError"
+            accept=".xlsx"
+          >
+            <el-button size="small" type="primary">点击导入</el-button>
+          </el-upload>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
   </div>
 </template>
 
@@ -259,6 +409,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/order-management/afterSales/index.vue

@@ -325,6 +325,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 10 - 10
src/views/order-management/order/JDorder.vue

@@ -16,7 +16,7 @@ export default {
     byTable,
     query,
     addOrder,
-    OrderDetails
+    OrderDetails,
   },
   data() {
     return {
@@ -82,8 +82,8 @@ export default {
         remark: "",
         orderDetailsList: [],
       },
-        detailsDialog:false,
-      selectOrderId:"",
+      detailsDialog: false,
+      selectOrderId: "",
     };
   },
   created() {
@@ -185,10 +185,10 @@ export default {
         }
       );
     },
-        handleLookDetails(row){
-      this.selectOrderId = row.id
-      this.detailsDialog = true
-    }
+    handleLookDetails(row) {
+      this.selectOrderId = row.id;
+      this.detailsDialog = true;
+    },
   },
 };
 </script>
@@ -220,7 +220,7 @@ export default {
                 cursor: pointer;
                 text-decoration: underline;
               "
-                 @click="handleLookDetails(scope.row)"
+              @click="handleLookDetails(scope.row)"
             >
               {{ scope.row.code }}
             </div>
@@ -299,8 +299,7 @@ export default {
       ></add-order>
     </el-dialog>
 
-    
-      <el-dialog
+    <el-dialog
       title="订单详情"
       v-if="detailsDialog"
       :visible.sync="detailsDialog"
@@ -326,6 +325,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 9 - 10
src/views/order-management/order/index.vue

@@ -11,14 +11,13 @@ import * as API from "@/api/order-management/order/index.js";
 import { customerList } from "@/api/product-material/customer/index.js";
 import OrderDetails from "@/components/order/details.vue";
 
-
 export default {
   components: {
     test,
     byTable,
     query,
     addOrder,
-    OrderDetails
+    OrderDetails,
   },
   data() {
     return {
@@ -80,8 +79,8 @@ export default {
         remark: "",
         orderDetailsList: [],
       },
-      detailsDialog:false,
-      selectOrderId:"",
+      detailsDialog: false,
+      selectOrderId: "",
     };
   },
   created() {
@@ -212,10 +211,10 @@ export default {
         </div>
       );
     },
-    handleLookDetails(row){
-      this.selectOrderId = row.id
-      this.detailsDialog = true
-    }
+    handleLookDetails(row) {
+      this.selectOrderId = row.id;
+      this.detailsDialog = true;
+    },
   },
 };
 </script>
@@ -253,7 +252,6 @@ export default {
                 cursor: pointer;
                 text-decoration: underline;
               "
-
               @click="handleLookDetails(scope.row)"
             >
               {{ scope.row.code }}
@@ -328,7 +326,7 @@ export default {
       ></add-order>
     </el-dialog>
 
-      <el-dialog
+    <el-dialog
       title="订单详情"
       v-if="detailsDialog"
       :visible.sync="detailsDialog"
@@ -354,6 +352,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/product-material/customer/index.vue

@@ -302,6 +302,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 3
src/views/purchase-management/purchase/index.vue

@@ -16,7 +16,6 @@ export default {
     byTable,
     query,
     addPurchase,
-    
   },
   data() {
     return {
@@ -77,7 +76,6 @@ export default {
         goodsId: [],
       },
       selectData: [],
-    
     };
   },
   created() {
@@ -382,7 +380,6 @@ export default {
         ref="sendSubscribe"
       ></add-purchase>
     </el-dialog>
-  
   </div>
 </template>
 
@@ -400,6 +397,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/purchase-management/returnsManagement/index.vue

@@ -263,6 +263,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>

+ 1 - 0
src/views/purchase-management/settlement/purchaseSettlement.vue

@@ -259,6 +259,7 @@ export default {
   }
   .body-main {
     flex: 1;
+    overflow-y: auto;
   }
 }
 </style>