Quellcode durchsuchen

京东异常采购单明细
1、新增字段,并在列表中显示
所有“报损,索赔理赔”处理场景增加金额字段【必填】
列表增加“报损”金额字段,显示“报损,索赔理赔”金额
列表显示报损金额,没有则不显示
2、增加搜索
- 列表增加“时间段”搜索。
- 处理详情里的出库商品增加“物品编码”搜索
3、列表字段 “京东采购单号” 增加链接打开详情,内容与京东采购单详情一致

京东采购单
1、列表字段“是否确认”增加选项“已确认(无需出库)”,点击操作“采购单确认(无需确认)”后显示该字段
2、列表和下拉筛选增加 “异常处理状态”

41235 vor 1 Jahr
Ursprung
Commit
69d773f581
2 geänderte Dateien mit 329 neuen und 48 gelöschten Zeilen
  1. 293 47
      src/views/WDLY/jd/abnormalDetails/index.vue
  2. 36 1
      src/views/WDLY/jd/order/index.vue

+ 293 - 47
src/views/WDLY/jd/abnormalDetails/index.vue

@@ -3,9 +3,21 @@
     <byTable :source="sourceList.data" :pagination="sourceList.pagination" :config="config" :loading="loading" highlight-current-row
              :selectConfig="selectConfig" :table-events="{
                     select: select,
-                }" :action-list="[]" @get-list="getList" @moreSearch="() => (queryDialogVisible = false)"
+                }" :action-list="[]" @get-list="getList" @moreSearch="() => (queryDialogVisible = true)"
 
     >
+      <template #orderId="{ item }">
+        <div style="display: flex; justify-content: flex-start;line-height: 34px;height: 34px" @click="getDtl(item);">
+<!--          <div v-if="item.hasEx=='1'">-->
+<!--            <img src="@/assets/images/jdyc.png" alt=""  style="width: 34px"/>-->
+<!--          </div>-->
+<!--          <div v-else style="width: 34px">-->
+
+<!--          </div>-->
+          <span  style="color: blue">{{item.orderId}}</span>
+        </div>
+      </template>
+
       <template #wareId="{ item }">
         <div style="display: flex; justify-content: center;line-height: 34px;height: 34px">
              <div v-if="item.exDesc=='1'">
@@ -67,7 +79,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="出库商品" prop="reduceProductId" v-if="reduceFlag" >
-          <el-select v-model="formData.data.reduceProductId" filterable :disabled="reduceProductIdDisplay" style="width: 100%;">
+          <el-select v-model="formData.data.reduceProductId"  filterable remote :disabled="reduceProductIdDisplay" style="width: 100%;" :remote-method="remoteValue">
             <el-option v-for="item in reduceProductList"  :key="item.value" :label="item.label" :value="item.value"/>
           </el-select>
         </el-form-item>
@@ -94,6 +106,10 @@
         <el-form-item label="快递单号" prop="expressNo" v-if="deliveryFlag" >
           <el-input v-model="formData.data.expressNo" :disabled="isViewFlag" placeholder="请输入快递单号" />
         </el-form-item>
+
+        <el-form-item label="金额" prop="amount" v-if="amountFlag" >
+          <el-input v-model="formData.data.amount" :disabled="isViewFlag" placeholder="请输入金额" />
+        </el-form-item>
         <el-form-item label="备注" prop="remark" v-if="remarkFlag">
           <el-input type="textarea" :rows="3" :disabled="isViewFlag" v-model="formData.data.remark"  placeholder="请输入备注" />
         </el-form-item>
@@ -109,14 +125,221 @@
       </template>
     </el-dialog>
 
+    <!--详情-->
+    <el-dialog :z-index="1500" title="采购单详情" v-if="detailsDialogVisible" v-model="formData1.data" width="1500px" v-loading="loading">
+      <el-descriptions title="基础信息" />
+      <el-form label-width="auto" :rules="rules">
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="京东订单号:" :span="8">
+              {{formData1.data.orderId}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="订购时间:" :span="8" label-position="right">
+              {{formData1.data.createdDate}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="供应商名称:" :span="8">
+              {{formData1.data.providerName}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="采购总金额:" :span="8">
+              {{formData1.data.totalPrice}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="配送中心名称:" :span="8">
+              {{formData1.data.deliverCenterName}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="采购员姓名:" :span="8">
+              {{formData1.data.purchaserName}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="删除状态:" :span="8">
+              {{formData1.data.statusName}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="是否EPT定制:" :span="8">
+              {{formData1.data.isEptCustomized?'是':'否'}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="订单状态:" :span="8">
+              {{formData1.data.stateName}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="完成时间:" :span="8">
+              {{formData1.data.completedDate}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="账期:" :span="8">
+              {{formData1.data.accountPeriod}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="收货负责人:" :span="8">
+              {{formData1.data.receiverName}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="收货电话:" :span="8">
+              {{formData1.data.warehousePhone}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="详细地址:" :span="8">
+              {{formData1.data.address}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="采购类型:" :span="8">
+              {{formData1.data.orderTypeName}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="订单属性:" :span="8">
+              {{formData1.data.orderAttributeName}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="回告状态:" :span="8">
+              {{formData1.data.confirmStateName}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="顾客单号:" :span="8">
+              {{formData1.data.customerOrderid}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="品种数量:" :span="8">
+              {{formData1.data.wareVariety}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="预计到货时间:" :span="8">
+              {{formData1.data.deliveryTime}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="是否可回告:" :span="8">
+              {{formData1.data.isCanConfirm?"可回告":"不可回告"}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="是否有差异:" :span="8">
+              {{formData1.data.isExistActualNumDif=='0'?"存在差异":"无差异"}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="是否已结算:" :span="8">
+              {{formData1.data.balanceStatus?"已结算":"未结算"}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="入库时间:" :span="8">
+              {{formData1.data.storageTime}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="TC转运标识:" :span="8">
+              {{formData1.data.tcFlagName}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="预约时间:" :span="8">
+              {{formData1.data.bookTime}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-descriptions title="采购单明细" />
+          <div style="line-height: 34px;height: 34px;display: flex">
+            <span>(</span>
+            <span><img src="@/assets/images/jdsh.png" alt=""  style="width: 34px"/></span><span>多货</span>
+            <span><img src="@/assets/images/jddh.png" alt="" style="width: 34px"/></span><span>少货</span>
+            <span>)</span>
+          </div>
+
+          <el-table :data="formData1.data.jdOrderDetailsList" stripe style="width: 100%">
+            <!--            <el-table stripe style="width: 100%">-->
+            <el-table-column prop="wareId" label="京东商品编号" width="175">
+              <template #default="scope">
+                <div style="display: flex; justify-content: center;line-height: 34px;height: 34px">
+                  <div v-if="scope.row.exDesc=='1'">
+                    <img src="@/assets/images/jdsh.png" alt=""  style="width: 34px"/>
+                  </div>
+                  <div v-if="scope.row.exDesc=='2'">
+                    <img src="@/assets/images/jddh.png" alt="" style="width: 34px"/>
+                  </div>
+                  <div :style="scope.row.productName=='' || scope.row.productName == undefined || scope.row.productName == 'undefined'?'color: red':''">
+                    {{scope.row.wareId}}
+                  </div>
+                </div>
+
+              </template>
+            </el-table-column>
+            <el-table-column prop="wareName" label="京东商品名称" min-width="200">
+              <template #default="scope">
+                <span
+                    :style="scope.row.productName=='' || scope.row.productName == undefined || scope.row.productName == 'undefined'?'color: red':''">{{scope.row.wareName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="productName" label="产品名称" width="150" />
+            <el-table-column prop="deliverCenterName" label="配送中心名称" width="110" />
+            <el-table-column prop="purchasePrice" label="采购价" width="80" />
+            <el-table-column prop="originalNum" label="原始采购数量" width="110" />
+            <el-table-column prop="confirmNum" label="回告数量" width="80" />
+            <el-table-column prop="actualNum" label="实收数量" width="80" />
+            <el-table-column prop="nonDeliveryReason" label="不满足原因" width="100" />
+            <el-table-column prop="totalPrice" label="采购总金额" width="110" />
+            <el-table-column prop="storeName" label="库房名称" width="180" />
+            <el-table-column prop="wareProperty" label="EPT采购单定制相关信息" width="180" />
+          </el-table>
+        </el-row>
+      </el-form>
+      <template #footer>
+        <el-button @click="detailsDialogVisible = false" size="large">取 消</el-button>
+      </template>
+    </el-dialog>
+
     <!--高级搜索-->
     <el-dialog :title="'高级检索'" v-model="queryDialogVisible" width="500px" destroy-on-close>
       <el-form :model="sourceList.pagination" label-width="100px" label-position="top">
-        <el-form-item label="采购单号">
-          <el-input v-model="sourceList.pagination.orderId" placeholder="请输入采购单号" oninput="value=value.replace(/[^\d.]/g,'')"/>
-        </el-form-item>
-        <el-form-item label="京东商品编号">
-          <el-input v-model="sourceList.pagination.wareId" placeholder="请输入京东商品编号" oninput="value=value.replace(/[^\d.]/g,'')"/>
+        <el-form-item label="处理时间">
+          <el-date-picker
+              v-model="sourceList.pagination.arr"
+              type="daterange"
+              range-separator="到"
+              start-placeholder="请选择"
+              end-placeholder="请选择"
+              value-format="YYYY-MM-DD HH:mm:ss"
+          />
         </el-form-item>
       </el-form>
       <template #footer>
@@ -221,9 +444,11 @@ let rules = ref({
 
   expressNo: [{ required: true, message: "请填写快递单号", trigger: "blur" }],
   remark: [{ required: true, message: "请填写备注", trigger: "blur" }],
+  amount: [{ required: true, message: "请填写金额", trigger: "blur" }],
 });
 
 const queryDialogVisible = ref(false);
+const detailsDialogVisible = ref(false);
 const dialogVisible = ref(false);
 const isViewFlag = ref(false);
 const stepsActiveindex = ref(1);
@@ -273,7 +498,7 @@ const config = computed(() => {
     {
       attrs: {
         label: "京东采购单号",
-        prop: "orderId",
+        slot: "orderId",
         align: "left",
         width: 120,
       },
@@ -333,6 +558,14 @@ const config = computed(() => {
     },
     {
       attrs: {
+        label: "金额",
+        prop: "amount",
+        align: "left",
+        width: 100,
+      },
+    },
+    {
+      attrs: {
         label: "京东商品名称",
         slot: "wareName",
         align: "left",
@@ -453,6 +686,12 @@ let formData = reactive({
     audioList: [],
   },
 });
+let formData1 = reactive({
+  data: {
+    coverList: [],
+    audioList: [],
+  },
+});
 const formOption = reactive({
   inline: true,
   labelWidth: 100,
@@ -476,38 +715,33 @@ const getDictlist = async () => {
       });
     }
   });
-  proxy.post("/productInfo/pageByWdly", { pageNum: 1, pageSize: 99999 }).then((res) => {
-    if (res.rows && res.rows.length > 0) {
-      productList.value = res.rows.map((item) => {
-        return {
-          label: item.name,
-          value: item.id,
-        };
-      });
-    }
-  });
+};
 
+const remoteValue = (query) => {
+  console.log("query",query)
+  if (query !== '') {
+    proxy.post("/productInfo/page",
+      {
+        pageNum: 1,
+        pageSize: 99999 ,
+        keyword:query,
+      }
+    ).then((res) => {
+      if (res.rows && res.rows.length > 0) {
+        reduceProductList.value = res.rows.map((item) => {
+          return {
+            label: item.name,
+            value: item.id,
+          };
+        });
+      }
+    });
+  } else {
+    reduceProductList.value = [];
+  }
 
-};
+}
 
-// const getProductList = async (e,type) =>{
-//   proxy.post("/stock/pageByWarehouse", { pageNum: 1, pageSize: 999 ,id:e}).then((res) => {
-//     if (res.rows && res.rows.length > 0) {
-//       const product = res.rows.map((item) => {
-//         return {
-//           label: item.productName,
-//           value: item.productId,
-//         };
-//       });
-//       if (type == 1){
-//        addProductList.value = product
-//       } else {
-//        reduceProductList.value = product
-//
-//       }
-//     }
-//   });
-// }
 
 const getList = async (req) => {
   sourceList.value.pagination = { ...sourceList.value.pagination, ...req };
@@ -544,9 +778,9 @@ const handleQuery = () => {
     sourceList.value.pagination.arr &&
     sourceList.value.pagination.arr.length > 1
   ) {
-    sourceList.value.pagination.purchaseStartTime =
+    sourceList.value.pagination.startTime =
       sourceList.value.pagination.arr[0];
-    sourceList.value.pagination.purchaseEndTime =
+    sourceList.value.pagination.endTime =
       sourceList.value.pagination.arr[1];
   }
   queryDialogVisible.value = false;
@@ -559,9 +793,6 @@ const handleQuery = () => {
  * @param row
  */
 const openHandleAction = (row,isView) => {
-
-  console.log('123123',isView)
-
   console.log("row",row)
     dialogVisible.value = true;
     stepsActiveindex.value = 1
@@ -592,7 +823,6 @@ const openHandleAction = (row,isView) => {
       treeChangeSelect(formData.data.abnormalStatus)
       formData.data.absoluteValue = absoluteValue
     }else {
-
       formData.data = {
         id:row.id,
         reduceQuantity  : absoluteValue,
@@ -620,12 +850,14 @@ const addFlag = ref(false)
 const addProductIdDisplay = ref(false)
 const remarkFlag = ref(false)
 const deliveryFlag = ref(false)
+const amountFlag = ref(false)
 
 const intiFlag = () => {
   tipsFlag.value = false
   addFlag.value = false
   reduceFlag.value = false
   remarkFlag.value = false
+  amountFlag.value = false
   deliveryFlag.value = false
   reduceProductIdDisplay.value = false
   addProductIdDisplay.value = false
@@ -677,6 +909,10 @@ const next = async () => {
   if (['401','501'].indexOf(type)>-1){
     deliveryFlag.value = true
   }
+  //判断 金额
+  if (['201','203','403','503'].indexOf(type)>-1){
+    amountFlag.value = true
+  }
   //判断 提示
   if (['101','202','402','502'].indexOf(type)>-1){
     tipsFlag.value = true
@@ -689,8 +925,10 @@ const back = () => {
 }
 
 const handProductList = () => {
+  //preventValue  防止被认为 重复请求
+
   if (!isNullOrUndefined(formData.data.addProductId)){
-    proxy.post("/jdOrderEx/productInfoById", { productId: formData.data.addProductId }).then((res) => {
+    proxy.post("/jdOrderEx/productInfoById", { productId: formData.data.addProductId,preventValue:1 }).then((res) => {
       if (res && res.length > 0) {
         addProductList.value = res.map((item) => {
           return {
@@ -701,10 +939,10 @@ const handProductList = () => {
       }
     });
   }else {
-    addProductList.value = productList.value
+    // addProductList.value = productList.value
   }
   if (!isNullOrUndefined(formData.data.reduceProductId)){
-    proxy.post("/jdOrderEx/productInfoById", { productId: formData.data.reduceProductId }).then((res) => {
+    proxy.post("/jdOrderEx/productInfoById", { productId: formData.data.reduceProductId,preventValue:2 }).then((res) => {
       if (res && res.length > 0) {
         reduceProductList.value = res.map((item) => {
           return {
@@ -715,7 +953,7 @@ const handProductList = () => {
       }
     });
   }else {
-    reduceProductList.value = productList.value
+    // reduceProductList.value = productList.value
   }
 }
 
@@ -790,6 +1028,14 @@ const showExHandle = (item) => {
   return exHandle[0].label
 }
 
+const getDtl = (row) => {
+  modalType.value = "edit";
+  proxy.post("/jdOrder/detail", { id: row.jdOrderId }).then((res) => {
+    formData1.data = res;
+    detailsDialogVisible.value = true;
+  });
+};
+
 getDictlist();
 getList();
 </script>

+ 36 - 1
src/views/WDLY/jd/order/index.vue

@@ -402,10 +402,14 @@ const selectConfig = computed(() => {
           value: "0",
         },
         {
-          label: "已确认",
+          label: "已确认(无需出库)",
           value: "1",
         },
         {
+          label: "已确认(需出库)",
+          value: "3",
+        },
+        {
           label: "已回告",
           value: "2",
         },
@@ -453,6 +457,20 @@ const selectConfig = computed(() => {
         },
       ],
     },
+    {
+      label: "异常处理状态",
+      prop: "handleStatus",
+      data: [
+        {
+          label: "已处理",
+          value: "2",
+        },
+        {
+          label: "未处理",
+          value: "1",
+        },
+      ],
+    },
   ];
 });
 
@@ -594,6 +612,23 @@ const config = computed(() => {
     },
     {
       attrs: {
+        label: "处理状态",
+        prop: "handleStatus",
+        align: "left",
+        width: 100,
+      },
+      render(type) {
+        if (type == '2' ){
+          return '已处理'
+        }else if (type == '1' ){
+          return '未处理'
+        }else {
+          return ''
+        }
+      },
+    },
+    {
+      attrs: {
         label: "操作",
         width: "200",
         align: "center",