Selaa lähdekoodia

wdly京东订单接收新需求

cz 1 vuosi sitten
vanhempi
commit
971c064789

+ 189 - 4
src/views/WDLY/outInBound/abnormal/index.vue

@@ -16,8 +16,13 @@
         :action-list="[]"
         @get-list="getList"
       >
-        <template #slotName="{ item }">
-          {{ item.createTime }}
+        <template #linkCode="{ item }">
+          <div
+            style="cursor: pointer; color: #409eff"
+            @click="handleClickLinkCode(item)"
+          >
+            {{ item.linkCode }}
+          </div>
         </template>
       </byTable>
     </div>
@@ -83,6 +88,135 @@
         </template>
       </byForm>
     </el-dialog>
+
+    <el-dialog
+      :title="'到货详情'"
+      v-model="dialogVisibleTwo"
+      width="80%"
+      destroy-on-close
+    >
+      <byForm
+        :formConfig="formConfigOne"
+        :formOption="formOption"
+        v-model="formData.dataOne"
+        :rules="rules"
+        ref="byformOne"
+      >
+        <template #detailSlot>
+          <div style="width: 100%">
+            <el-table :data="formData.dataOne.purchaseDetailVoList">
+              <el-table-column prop="productCustomCode" label="物品编码" />
+              <el-table-column prop="productName" label="物品名称" />
+              <el-table-column prop="count" label="采购数量" />
+              <el-table-column prop="deliverGoodsQuantity" label="已发货">
+                <template #default="{ row }">
+                  <div>
+                    <el-popover
+                      placement="bottom-start"
+                      title="发货详情"
+                      :width="500"
+                      trigger="hover"
+                    >
+                      <div default>
+                        <el-table :data="row.deliverGoodsDetailList">
+                          <el-table-column
+                            label="发货时间"
+                            prop="createTime"
+                            width="155"
+                          />
+                          <el-table-column
+                            label="物流单号"
+                            prop="logisticsCode"
+                          />
+                          <el-table-column
+                            label="数量"
+                            prop="deliverGoodsQuantity"
+                            width="100"
+                          />
+                        </el-table>
+                      </div>
+                      <template #reference>
+                        <div style="cursor: pointer; color: #0084ff">
+                          {{ row.deliverGoodsQuantity }}
+                        </div>
+                      </template>
+                    </el-popover>
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column prop="receiptQuantity" label="已入库">
+                <template #default="{ row }">
+                  <div>
+                    <el-popover
+                      placement="bottom-start"
+                      title="入库详情"
+                      :width="500"
+                      trigger="hover"
+                    >
+                      <div default>
+                        <el-table :data="row.receiptList">
+                          <el-table-column
+                            label="入库时间"
+                            prop="createTime"
+                            width="155"
+                          />
+                          <el-table-column
+                            label="入库单号"
+                            prop="logisticsCode"
+                          />
+                          <el-table-column
+                            label="数量"
+                            prop="quantity"
+                            width="100"
+                          />
+                        </el-table>
+                      </div>
+                      <template #reference>
+                        <div style="cursor: pointer; color: #0084ff">
+                          {{ row.receiptQuantity }}
+                        </div>
+                      </template>
+                    </el-popover>
+                  </div>
+                </template>
+              </el-table-column>
+
+              <el-table-column prop="purchaseBackQuantity" label="退货">
+                <template #default="{ row }">
+                  <div>
+                    <el-popover
+                      placement="bottom-start"
+                      title="退货详情"
+                      :width="500"
+                      trigger="hover"
+                    >
+                      <div default>
+                        <el-table :data="row.purchaseBackDetailsList">
+                          <el-table-column label="退货时间" prop="createTime" />
+                          <el-table-column label="数量" prop="quantity" />
+                        </el-table>
+                      </div>
+                      <template #reference>
+                        <div style="cursor: pointer; color: #0084ff">
+                          {{ row.purchaseBackQuantity }}
+                        </div>
+                      </template>
+                    </el-popover>
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column prop="qualityQuantity" label="已质检数量" />
+              <el-table-column prop="noQualifiedCount" label="不合格数量" />
+            </el-table>
+          </div>
+        </template>
+      </byForm>
+      <template #footer>
+        <el-button @click="dialogVisibleTwo = false" size="large"
+          >取 消</el-button
+        >
+      </template>
+    </el-dialog>
   </div>
 </template>
   
@@ -106,6 +240,7 @@ const sourceList = ref({
 });
 let dialogVisible = ref(false);
 let dialogVisibleOne = ref(false);
+let dialogVisibleTwo = ref(false);
 
 let roomDialogVisible = ref(false);
 let modalType = ref("add");
@@ -141,7 +276,7 @@ const typeData = [
     value: "40",
   },
   {
-    label: "入库数量差异",
+    label: "入库",
     value: "50",
   },
 ];
@@ -195,6 +330,7 @@ const config = computed(() => {
         label: "关联单号",
         prop: "linkCode",
         width: 180,
+        slot: "linkCode",
       },
     },
     {
@@ -317,6 +453,7 @@ const config = computed(() => {
 
 let formData = reactive({
   data: {},
+  dataOne: {},
   treeData: [],
 });
 const formOption = reactive({
@@ -325,6 +462,35 @@ const formOption = reactive({
   itemWidth: 100,
   rules: [],
 });
+let formConfigOne = computed(() => [
+  {
+    type: "title",
+    title: "基础信息",
+  },
+  {
+    type: "input",
+    prop: "supplyName",
+    label: "供应商",
+    disabled: true,
+    itemWidth: 50,
+  },
+  {
+    type: "input",
+    prop: "purchaseCode",
+    label: "采购单号",
+    disabled: true,
+    itemWidth: 50,
+  },
+  {
+    type: "title",
+    title: "采购明细",
+  },
+  {
+    type: "slot",
+    slotName: "detailSlot",
+    label: "",
+  },
+]);
 const byform = ref(null);
 const treeData = ref([]);
 const formConfigData = [
@@ -467,7 +633,6 @@ const getList = async (req) => {
     .then((message) => {
       console.log(message);
       sourceList.value.data = message.rows;
-      // sourceList.value.data = [{}];
       sourceList.value.pagination.total = message.total;
       setTimeout(() => {
         loading.value = false;
@@ -530,6 +695,26 @@ const getDict = () => {
     formConfigData[0][9].data = handleMethon.value;
   });
 };
+
+const handleClickLinkCode = (row) => {
+  if (row.type == 10 || row.type == 50) {
+    ElMessage({
+      message: "数据请求中,请稍后",
+      type: "info",
+    });
+    proxy
+      .post("/deliverGoods/arrivalDetail", { purchaseId: row.purchaseId })
+      .then((res) => {
+        formData.dataOne = {
+          supplyName: res.supplyName,
+          purchaseCode: row.linkCode,
+          purchaseDetailVoList: res.purchaseDetailVoList,
+        };
+        dialogVisibleTwo.value = true;
+      });
+  }
+};
+
 getDict();
 getList();
 </script>

+ 70 - 82
src/views/WDLY/outInBound/jdOrderReceive/index.vue

@@ -13,7 +13,13 @@
           //element talbe事件都能传
           select: select,
         }"
-        :action-list="[]"
+        :action-list="[
+          {
+            text: 'Excel导入',
+            action: () => openExcel(),
+            disabled: false,
+          },
+        ]"
         @get-list="getList"
       >
         <template #code="{ item }">
@@ -164,6 +170,28 @@
         </span>
       </template>
     </el-dialog>
+
+    <el-dialog
+      title="Excel导入"
+      v-model="openExcelDialog"
+      width="400"
+      v-loading="excelLoading"
+    >
+      <el-upload
+        :action="actionUrl + '/jdOrder/receiveExcelImport'"
+        :headers="headers"
+        :on-success="handleSuccess"
+        :on-progress="handleProgress"
+        :show-file-list="false"
+        :on-error="handleError"
+        accept=".xls, .xlsx"
+      >
+        <el-button type="primary">点击导入</el-button>
+      </el-upload>
+      <template #footer>
+        <el-button @click="openExcelDialog = false">取 消</el-button>
+      </template>
+    </el-dialog>
   </div>
 </template>
   
@@ -174,6 +202,12 @@ import byTable from "@/components/byTable/index";
 import byForm from "@/components/byForm/index";
 import OrderDetails from "@/components/WDLY/order/details";
 import selectCity from "@/components/selectCity/index.vue";
+import { getToken } from "@/utils/auth";
+
+const headers = ref({ Authorization: "Bearer " + getToken() });
+const actionUrl = import.meta.env.VITE_APP_BASE_API;
+const openExcelDialog = ref(false);
+const excelLoading = ref(false);
 
 const loading = ref(false);
 const submitLoading = ref(false);
@@ -189,76 +223,6 @@ let dialogVisible = ref(false);
 let openDetails = ref(false);
 let modalType = ref("add");
 let rules = ref({
-  // customerId: [
-  //   {
-  //     required: true,
-  //     message: "请选择客户",
-  //     trigger: "change",
-  //   },
-  // ],
-  // type: [
-  //   {
-  //     required: true,
-  //     message: "请选择订单类型",
-  //     trigger: "change",
-  //   },
-  // ],
-  // countryId: [
-  //   {
-  //     required: true,
-  //     message: "请选择国家",
-  //     trigger: "change",
-  //   },
-  // ],
-  // provinceId: [
-  //   {
-  //     required: true,
-  //     message: "请选择省/洲",
-  //     trigger: "change",
-  //   },
-  // ],
-  // cityId: [
-  //   {
-  //     required: true,
-  //     message: "请选择城市",
-  //     trigger: "change",
-  //   },
-  // ],
-  // code: [
-  //   {
-  //     required: true,
-  //     message: "请输入订单编号",
-  //     trigger: "blur",
-  //   },
-  // ],
-  // contactPerson: [
-  //   {
-  //     required: true,
-  //     message: "请输入收货负责人",
-  //     trigger: "blur",
-  //   },
-  // ],
-  // contactNumber: [
-  //   {
-  //     required: true,
-  //     message: "请输入收货电话",
-  //     trigger: "blur",
-  //   },
-  // ],
-  // detailedAddress: [
-  //   {
-  //     required: true,
-  //     message: "请输入详细地址",
-  //     trigger: "blur",
-  //   },
-  // ],
-  // price: [
-  //   {
-  //     required: true,
-  //     message: "请输入单价",
-  //     trigger: "blur",
-  //   },
-  // ],
   inQuantity: [
     {
       required: true,
@@ -266,13 +230,6 @@ let rules = ref({
       trigger: "blur",
     },
   ],
-  // distributionCenter: [
-  //   {
-  //     required: true,
-  //     message: "请输入/选择配送中心",
-  //     trigger: "blur",
-  //   },
-  // ],
 });
 const { proxy } = getCurrentInstance();
 const selectConfig = reactive([
@@ -584,11 +541,9 @@ const submitForm = () => {
   });
 };
 
-const warehouseList = ref([]);
 const salesType = ref([]);
-
 const getDict = () => {
-  proxy.getDict(["order_sales_type"]).then((res) => {
+  proxy.getDictOne(["order_sales_type"]).then((res) => {
     salesType.value = res["order_sales_type"];
     formConfig[1].data = salesType.value.map((x) => ({
       label: x.dictValue,
@@ -621,9 +576,42 @@ const getCityData = (id, type, flag) => {
     }
   });
 };
+
+const openExcel = () => {
+  openExcelDialog.value = true;
+};
+const handleProgress = () => {
+  excelLoading.value = true;
+};
+const handleSuccess = (res) => {
+  if (res.code != 200) {
+    return ElMessage({
+      message: `${res.msg},请重试!`,
+      type: "info",
+    });
+  } else {
+    ElMessage({
+      message: "导入成功!",
+      type: "success",
+    });
+    openExcelDialog.value = false;
+    excelLoading.value = false;
+    getList();
+  }
+};
+
+const handleError = (err) => {
+  ElMessage({
+    message: `${err},请重试!`,
+    type: "info",
+  });
+  openExcelDialog.value = false;
+  excelLoading.value = false;
+};
+
 getCityData("0");
 getList();
-// getDict();
+getDict();
 
 const handleClickCode = (row) => {
   // formData.orderData = row;

+ 185 - 2
src/views/WDLY/outInBound/logistics/index.vue

@@ -22,7 +22,10 @@
         @get-list="getList"
       >
         <template #one="{ item }">
-          <div style="cursor: pointer; color: #409eff">
+          <div
+            style="cursor: pointer; color: #409eff"
+            @click="handleClickLinkCode(item)"
+          >
             {{ item.businessCode }}
           </div>
         </template>
@@ -132,6 +135,136 @@
         <el-button @click="openRecord = false" size="large">关闭</el-button>
       </template>
     </el-dialog>
+
+    <el-dialog
+      :title="'到货详情'"
+      v-model="dialogVisibleOne"
+      width="80%"
+      destroy-on-close
+    >
+      <byForm
+        :formConfig="formConfigTwo"
+        :formOption="formOption"
+        v-model="formData.dataOne"
+        :rules="rules"
+        ref="byformOne"
+      >
+        <template #detailSlot>
+          <div style="width: 100%">
+            <el-table :data="formData.dataOne.purchaseDetailVoList">
+              <el-table-column prop="productCustomCode" label="物品编码" />
+              <el-table-column prop="productName" label="物品名称" />
+              <el-table-column prop="count" label="采购数量" />
+              <el-table-column prop="deliverGoodsQuantity" label="已发货">
+                <template #default="{ row }">
+                  <div>
+                    <el-popover
+                      placement="bottom-start"
+                      title="发货详情"
+                      :width="500"
+                      trigger="hover"
+                    >
+                      <div default>
+                        <el-table :data="row.deliverGoodsDetailList">
+                          <el-table-column
+                            label="发货时间"
+                            prop="createTime"
+                            width="155"
+                          />
+                          <el-table-column
+                            label="物流单号"
+                            prop="logisticsCode"
+                          />
+                          <el-table-column
+                            label="数量"
+                            prop="deliverGoodsQuantity"
+                            width="100"
+                          />
+                        </el-table>
+                      </div>
+                      <template #reference>
+                        <div style="cursor: pointer; color: #0084ff">
+                          {{ row.deliverGoodsQuantity }}
+                        </div>
+                      </template>
+                    </el-popover>
+                  </div>
+                </template>
+              </el-table-column>
+
+              <el-table-column prop="receiptQuantity" label="已入库">
+                <template #default="{ row }">
+                  <div>
+                    <el-popover
+                      placement="bottom-start"
+                      title="入库详情"
+                      :width="500"
+                      trigger="hover"
+                    >
+                      <div default>
+                        <el-table :data="row.receiptList">
+                          <el-table-column
+                            label="入库时间"
+                            prop="createTime"
+                            width="155"
+                          />
+                          <el-table-column
+                            label="入库单号"
+                            prop="logisticsCode"
+                          />
+                          <el-table-column
+                            label="数量"
+                            prop="quantity"
+                            width="100"
+                          />
+                        </el-table>
+                      </div>
+                      <template #reference>
+                        <div style="cursor: pointer; color: #0084ff">
+                          {{ row.receiptQuantity }}
+                        </div>
+                      </template>
+                    </el-popover>
+                  </div>
+                </template>
+              </el-table-column>
+
+              <el-table-column prop="purchaseBackQuantity" label="退货">
+                <template #default="{ row }">
+                  <div>
+                    <el-popover
+                      placement="bottom-start"
+                      title="退货详情"
+                      :width="500"
+                      trigger="hover"
+                    >
+                      <div default>
+                        <el-table :data="row.purchaseBackDetailsList">
+                          <el-table-column label="退货时间" prop="createTime" />
+                          <el-table-column label="数量" prop="quantity" />
+                        </el-table>
+                      </div>
+                      <template #reference>
+                        <div style="cursor: pointer; color: #0084ff">
+                          {{ row.purchaseBackQuantity }}
+                        </div>
+                      </template>
+                    </el-popover>
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column prop="qualityQuantity" label="已质检数量" />
+              <el-table-column prop="noQualifiedCount" label="不合格数量" />
+            </el-table>
+          </div>
+        </template>
+      </byForm>
+      <template #footer>
+        <el-button @click="dialogVisibleOne = false" size="large"
+          >取 消</el-button
+        >
+      </template>
+    </el-dialog>
   </div>
 </template>
   
@@ -154,6 +287,7 @@ const sourceList = ref({
   },
 });
 let dialogVisible = ref(false);
+let dialogVisibleOne = ref(false);
 let openProduct = ref(false);
 let openRecord = ref(false);
 const activities = ref([]);
@@ -349,6 +483,7 @@ const config = computed(() => {
 });
 let formData = reactive({
   data: {},
+  dataOne: {},
   treeData: [],
 });
 const formOption = reactive({
@@ -438,6 +573,36 @@ const formConfigOne = reactive([
   },
 ]);
 
+let formConfigTwo = computed(() => [
+  {
+    type: "title",
+    title: "基础信息",
+  },
+  {
+    type: "input",
+    prop: "supplyName",
+    label: "供应商",
+    disabled: true,
+    itemWidth: 50,
+  },
+  {
+    type: "input",
+    prop: "purchaseCode",
+    label: "采购单号",
+    disabled: true,
+    itemWidth: 50,
+  },
+  {
+    type: "title",
+    title: "采购明细",
+  },
+  {
+    type: "slot",
+    slotName: "detailSlot",
+    label: "",
+  },
+]);
+
 const getList = async (req) => {
   sourceList.value.pagination = { ...sourceList.value.pagination, ...req };
   loading.value = true;
@@ -452,6 +617,7 @@ const getList = async (req) => {
       }, 200);
     });
 };
+
 const openModal = () => {
   dialogVisible.value = true;
   modalType.value = "add";
@@ -605,7 +771,24 @@ const handleArrival = (row) => {
     dialogVisible.value = true;
   });
 };
-
+const handleClickLinkCode = (row) => {
+  if (row.businessType == 1 || row.businessType == 5) {
+    ElMessage({
+      message: "数据请求中,请稍后",
+      type: "info",
+    });
+    proxy
+      .post("/deliverGoods/arrivalDetail", { purchaseId: row.purchaseId })
+      .then((res) => {
+        formData.dataOne = {
+          supplyName: res.supplyName,
+          purchaseCode: row.businessCode,
+          purchaseDetailVoList: res.purchaseDetailVoList,
+        };
+        dialogVisibleOne.value = true;
+      });
+  }
+};
 getList();
 getLogisticsData();
 onMounted(() => {

+ 5 - 0
src/views/WDLY/purchaseManage/alreadyPurchase/index.vue

@@ -451,6 +451,11 @@
               />
               <el-table-column prop="count" label="采购数量" width="100" />
               <el-table-column
+                prop="defectiveQuantity"
+                label="次品数量"
+                width="100"
+              />
+              <el-table-column
                 prop="quantity"
                 label="退货数量"
                 min-width="150"

+ 2 - 10
src/views/WDLY/salesMange/jdOrder/index.vue

@@ -257,7 +257,7 @@
           :on-progress="handleProgress"
           :show-file-list="false"
           :on-error="handleError"
-          accept=".xlsx"
+          accept=".xls, .xlsx"
         >
           <el-button type="primary">选择</el-button>
         </el-upload>
@@ -265,13 +265,6 @@
 
       <template #footer>
         <el-button @click="openExcelDialog = false">取 消</el-button>
-        <!-- <el-button
-          type="primary"
-          @click="submitExcel()"
-          :loading="submitLoading"
-        >
-          确 定
-        </el-button> -->
       </template>
     </el-dialog>
   </div>
@@ -756,7 +749,7 @@ const handleClickCode = (row) => {
   formData.orderData = row;
   openDetails.value = true;
 };
-let openExcelDialog = ref(false);
+const openExcelDialog = ref(false);
 
 const openExcel = () => {
   importData.customerId = "";
@@ -767,7 +760,6 @@ const handleProgress = () => {
   excelLoading.value = true;
 };
 const handleError = (err) => {
-  console.log(err, "aas");
   ElMessage({
     message: `${err},请重试!`,
     type: "info",