Browse Source

采购订单维护-增加整单关闭、行关闭、行打开功能

002390 1 year ago
parent
commit
a545523d46

+ 18 - 1
src/api/business/purchase/purchase-order.js

@@ -101,6 +101,22 @@ const close = (data) => {
     data,
     data,
   });
   });
 }
 }
+// 采购订单行关闭
+const itemClose = (data) => {
+  return request({
+    url: `/pu/order/item/close`,
+    method: "post",
+    data,
+  });
+}
+// 采购订单行打开
+const itemOpen = (data) => {
+  return request({
+    url: `/pu/order/item/open`,
+    method: "post",
+    data,
+  });
+}
 
 
 // 采购订单发送NC
 // 采购订单发送NC
 const toNc = (data) => {
 const toNc = (data) => {
@@ -222,5 +238,6 @@ export default {
   downloadFailData,
   downloadFailData,
   oaBack,
   oaBack,
   modifyBuyer,
   modifyBuyer,
-  
+  itemClose,
+  itemOpen,
 }
 }

+ 77 - 0
src/views/purchase/purchase-order/close/allClose.vue

@@ -0,0 +1,77 @@
+<!-- 整单关闭 -->
+<script>
+import orderApi from "@/api/business/purchase/purchase-order";
+export default {
+  name: "AllClose",
+  props: {
+    selectData: {
+      type: Array,
+      default: () => [],
+    },
+  },
+  data() {
+    return {
+      title: "整单关闭",
+    };
+  },
+  computed: {
+    innerValue: {
+      get() {
+        return this.$props.selectData;
+      },
+      set() {},
+    },
+    disabled: {
+      get() {
+        let { innerValue } = this;
+
+        if (
+          innerValue.length === 1 &&
+          innerValue[0].status == 2 &&
+          innerValue[0].isEnd === "N"
+        ) {
+          return false;
+        }
+        return true;
+      },
+      set() {},
+    },
+  },
+  methods: {
+    open() {
+      // 未审批状态下整单关闭
+      this.$prompt("请输入关闭原因", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        inputPattern: /\s*\S+?/,
+        inputErrorMessage: "关闭原因不能为空",
+      })
+        .then(async ({ value }) => {
+          let { innerValue } = this;
+          try {
+            let puOrderIds = innerValue.map((order) => Number(order.id));
+
+            let { code } = await orderApi.close({
+              puOrderIds,
+              closeReason: value,
+            });
+
+            if (code === 200) {
+              this.$emit("submit");
+              this.$notify.success({
+                message: msg,
+              });
+            }
+          } catch (error) {}
+        })
+        .catch(() => {});
+    },
+  },
+  created() {},
+};
+</script>
+<template>
+  <el-button :size="$attrs.size" @click="open" :disabled="disabled">{{
+    title
+  }}</el-button>
+</template>

+ 66 - 0
src/views/purchase/purchase-order/close/itemClose.vue

@@ -0,0 +1,66 @@
+<!-- 行关闭 -->
+<script>
+import orderApi from "@/api/business/purchase/purchase-order";
+export default {
+  name: "itemClose",
+  props: {
+    selectData: {
+      type: Array,
+      default: () => [],
+    },
+  },
+  data() {
+    return {
+      title: "行关闭",
+    };
+  },
+  computed: {
+    innerValue: {
+      get() {
+        return this.$props.selectData;
+      },
+      set() {},
+    },
+  },
+  methods: {
+    async open() {
+      let { innerValue } = this;
+
+      let data = innerValue.find((item) => item.isPayment === "Y");
+
+      if (!data) {
+        this.$confirm("是否继续此操作?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(async () => {
+            try {
+              let puOrderIds = innerValue.map((order) => Number(order.id));
+
+              let { code } = await orderApi.itemClose({
+                puOrderIds,
+              });
+
+              if (code === 200) {
+                this.$emit("submit");
+                this.$notify.success({
+                  message: msg,
+                });
+              }
+            } catch (error) {}
+          })
+          .catch(() => {});
+      } else {
+        this.$notify.warning({
+          message: "存在已经完成关闭的行",
+        });
+      }
+    },
+  },
+  created() {},
+};
+</script>
+<template>
+  <el-button :size="$attrs.size" @click="open">{{ title }}</el-button>
+</template>

+ 62 - 0
src/views/purchase/purchase-order/close/itemOpen.vue

@@ -0,0 +1,62 @@
+<!-- 行打开 -->
+<script>
+import orderApi from "@/api/business/purchase/purchase-order";
+export default {
+  name: "itemOpen",
+  props: {
+    selectData: {
+      type: Array,
+      default: () => [],
+    },
+  },
+  data() {
+    return {
+      title: "行打开",
+    };
+  },
+  computed: {
+    innerValue: {
+      get() {
+        return this.$props.selectData;
+      },
+      set() {},
+    },
+  },
+  methods: {
+    async open() {
+      let { innerValue } = this;
+      let data = innerValue.find((item) => item.isPayment === "N");
+      if (!data) {
+        this.$confirm("是否继续此操作?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(async () => {
+            try {
+              let puOrderIds = innerValue.map((order) => Number(order.id));
+              let { code } = await orderApi.itemOpen({
+                puOrderIds,
+              });
+              if (code === 200) {
+                this.$emit("submit");
+                this.$notify.success({
+                  message: msg,
+                });
+              }
+            } catch (error) {}
+          })
+          .catch(() => {});
+      } else {
+        this.$notify.warning({
+          message: "存在已经完成打开的行",
+        });
+      }
+    },
+  },
+  created() {},
+};
+</script>
+<template>
+  <el-button :size="$attrs.size" @click="open">{{ title }}</el-button>
+</template>

+ 23 - 28
src/views/purchase/purchase-order/index.vue

@@ -33,6 +33,9 @@ export default {
     Retrieve: () => import("@/components/Retrieve/index.vue"),
     Retrieve: () => import("@/components/Retrieve/index.vue"),
     ZpButton: () => import("./zhuan-pai/index.vue"),
     ZpButton: () => import("./zhuan-pai/index.vue"),
     ZpjlButton: () => import("./zhuan-pai/record.vue"),
     ZpjlButton: () => import("./zhuan-pai/record.vue"),
+    ZdgbButton: () => import("./close/allClose.vue"),
+    HgbButton: () => import("./close/itemClose.vue"),
+    HdkButton: () => import("./close/itemOpen.vue"),
     QueryScheme: () => import("@/components/query-scheme/index.vue"),
     QueryScheme: () => import("@/components/query-scheme/index.vue"),
   },
   },
   data() {
   data() {
@@ -541,36 +544,14 @@ export default {
             if (code === 200) {
             if (code === 200) {
               this.handleRefreshList();
               this.handleRefreshList();
             }
             }
+            this.$notify.success({
+              message: msg,
+            });
           } catch (error) {}
           } catch (error) {}
         })
         })
         .catch(() => {});
         .catch(() => {});
     },
     },
-    // 判断是否满足整单关闭
-    judgeIsAllClose() {
-      if (this.checkedList.length == 1) {
-        // if (this.checkedList[0].status == 0) {
-        if (this.judgeIsOption("allClose", this.checkedList[0])) {
-          // 未审批状态下整单关闭
-          return false;
-        }
-      }
-      return true;
-    },
-    // 整单关闭
-    handleAllClose() {
-      // 未审批状态下整单关闭
-      try {
-        this.handleConfirmTips(async () => {
-          let puOrderIds = this.checkedList.map((order) => Number(order.id));
 
 
-          let { code } = await orderApi.close({ puOrderIds });
-
-          if (code === 200) {
-            this.handleRefreshList();
-          }
-        });
-      } catch (error) {}
-    },
     // 付款协议
     // 付款协议
     async handlePaymentRequest() {
     async handlePaymentRequest() {
       // name:工号
       // name:工号
@@ -662,8 +643,8 @@ export default {
               source.status == "9") &&
               source.status == "9") &&
             source.isEnd === "N"
             source.isEnd === "N"
           );
           );
-        case "allClose":
-          return source.status == 0 && source.isEnd === "N";
+        // case "allClose":
+        //   return source.status == 2 && source.isEnd === "N";
         case "return":
         case "return":
           return (
           return (
             source.source != 3 &&
             source.source != 3 &&
@@ -750,7 +731,11 @@ export default {
             :disabled="judgeIsAllReturn()"
             :disabled="judgeIsAllReturn()"
             >整单退回</el-button
             >整单退回</el-button
           >
           >
-          <!-- <el-button :size="size" @click="handleAllClose" :disabled="judgeIsAllClose()">整单关闭</el-button> -->
+          <zdgb-button
+            :select-data="checkedList"
+            :size="size"
+            @submit="handleRefreshList"
+          ></zdgb-button>
         </el-button-group>
         </el-button-group>
 
 
         <el-button-group style="margin: 0 10px">
         <el-button-group style="margin: 0 10px">
@@ -866,6 +851,16 @@ export default {
           :disabled="judgeIsLineReturn()"
           :disabled="judgeIsLineReturn()"
           >行退回</el-button
           >行退回</el-button
         >
         >
+        <hgb-button
+          :select-data="checkedTabList"
+          :size="size"
+          @submit="handleRefreshList"
+        ></hgb-button>
+        <hdk-button
+          :select-data="checkedTabList"
+          :size="size"
+          @submit="handleRefreshList"
+        ></hdk-button>
       </el-row>
       </el-row>
       <el-tabs
       <el-tabs
         v-model="tabName"
         v-model="tabName"