Selaa lähdekoodia

采购订单维护-新增合单功能;详情子表增加“原单据生成时间”字段

002390 1 vuosi sitten
vanhempi
commit
2b43fad80e

+ 16 - 7
src/api/business/purchase/purchase-order.js

@@ -7,7 +7,7 @@ const list = (data, page) => {
     url: `/pu/order/list`,
     method: "post",
     data,
-    params:page,
+    params: page,
   });
 }
 
@@ -145,7 +145,7 @@ const REFER = (data, params) => {
   });
 }
 // 获取入库数据
-const putInStorage = (data) =>{
+const putInStorage = (data) => {
   return request({
     url: "/pu/order/putInStorage",
     method: "POST",
@@ -153,7 +153,7 @@ const putInStorage = (data) =>{
   });
 }
 // 获取退货订单
-const returnedGoods = (data) =>{
+const returnedGoods = (data) => {
   return request({
     url: "/pu/order/returnedGoods",
     method: "POST",
@@ -161,7 +161,7 @@ const returnedGoods = (data) =>{
   });
 }
 
-const toOA =(userName, fdId) => {
+const toOA = (userName, fdId) => {
   return request({
     url: `/oaflow/redirectToOa/${userName}/${fdId}`,
     method: 'get',
@@ -171,7 +171,7 @@ const toOA =(userName, fdId) => {
 
 
 // 采购订单修订导出
-const orderExport =(data) => {
+const orderExport = (data) => {
   return request({
     url: `/pu/order/export`,
     method: "POST",
@@ -180,7 +180,7 @@ const orderExport =(data) => {
 }
 
 // 行导入
-const orderImport = (data) =>{
+const orderImport = (data) => {
   return request({
     url: "/pu/order/import",
     method: "POST",
@@ -188,7 +188,7 @@ const orderImport = (data) =>{
   });
 }
 // 模板下载
-const downloadFailData = (data) =>{
+const downloadFailData = (data) => {
   return request({
     url: "/pu/order/downloadFailData",
     method: "POST",
@@ -229,6 +229,14 @@ export function counterApprove(data) {
     data,
   });
 }
+// 合单
+export function merge(data) {
+  return request({
+    url: "/pu/order/merge",
+    method: "POST",
+    data,
+  });
+}
 
 
 export default {
@@ -258,4 +266,5 @@ export default {
   itemOpen,
   materialCopy,
   counterApprove,
+  merge,
 }

+ 20 - 1
src/views/purchase/purchase-order/add/column.js

@@ -639,6 +639,16 @@ const PurchaseTabColumns = [
         width: 180,
         disabled: true,
       },
+      {
+        key: "sourceBillDate",
+        title: "原单据生成时间",
+        inputType: "DatePicker",
+        type: 'datetime',
+        // valueFormat: "yyyy-MM-dd HH:mm:ss",
+        disabled: true,
+        isShow: true,
+        width: 180,
+      },
 
     ]
   },
@@ -1454,7 +1464,16 @@ const CauseTabColumns = [
         disabled: true,
         width: 180,
       },
-
+      {
+        key: "sourceBillDate",
+        title: "原单据生成时间",
+        inputType: "DatePicker",
+        type: 'datetime',
+        // valueFormat: "yyyy-MM-dd HH:mm:ss",
+        disabled: true,
+        isShow: true,
+        width: 180,
+      },
     ]
   },
   // {

+ 13 - 0
src/views/purchase/purchase-order/add/index.vue

@@ -264,6 +264,7 @@ export default {
                 v.closeReason = "";
                 v.goodsAllocation = "";
                 v.goodsAllocationName = "";
+                v.sourceBillDate = "";
                 v["isInvoice"] && (v["isInvoice"] = "N");
                 v["isStorage"] && (v["isStorage"] = "N");
                 v["isArrival"] && (v["isArrival"] = "N");
@@ -292,6 +293,7 @@ export default {
           ).tableColumns;
 
           let rowData = initParams(arr, "key", "value");
+          console.log(rowData, "rowData");
 
           "rowno" in rowData &&
             (rowData["rowno"] = this.params[key].length
@@ -1223,6 +1225,17 @@ export default {
                       false-label="N"
                       @change="handleTabCheckbox(cColumn.key, scope.row)"
                     ></el-checkbox>
+
+                    <el-date-picker
+                      v-if="cColumn.inputType === 'DatePicker'"
+                      v-model="scope.row[cColumn.key]"
+                      :type="cColumn.type"
+                      :placeholder="cColumn.placeholder"
+                      :clearable="cColumn.clearable"
+                      :disabled="cColumn.disabled"
+                      :picker-options="cColumn.pickerOptions"
+                      style="width: 100%"
+                    ></el-date-picker>
                   </el-form-item>
                 </template>
               </ux-table-column>

+ 10 - 0
src/views/purchase/purchase-order/edit/index.vue

@@ -1186,6 +1186,16 @@ export default {
                       :size="size"
                       style="width: 100%"
                     ></el-input-number>
+                    <el-date-picker
+                      v-if="cColumn.inputType === 'DatePicker'"
+                      v-model="scope.row[cColumn.key]"
+                      :type="cColumn.type"
+                      :placeholder="cColumn.placeholder"
+                      :clearable="cColumn.clearable"
+                      :disabled="cColumn.disabled"
+                      :picker-options="cColumn.pickerOptions"
+                      style="width: 100%"
+                    ></el-date-picker>
                   </el-form-item>
                 </template>
               </ux-table-column>

+ 0 - 0
src/views/purchase/purchase-order/fs/index.vue → src/views/purchase/purchase-order/fan-shen/index.vue


+ 87 - 0
src/views/purchase/purchase-order/he-dan/index.vue

@@ -0,0 +1,87 @@
+<!-- 反审 -->
+<script>
+import { merge } from "@/api/business/purchase/purchase-order";
+export default {
+  name: "JoiningOrders",
+  props: {
+    selectData: {
+      type: Array,
+      default: () => [],
+    },
+  },
+  data() {
+    return {
+      title: "合 单",
+    };
+  },
+  computed: {
+    innerValue: {
+      get() {
+        return this.$props.selectData;
+      },
+      set() {},
+    },
+    disabled: {
+      get() {
+        let { innerValue } = this;
+        console.log(innerValue, "innerValue");
+        if (innerValue.length > 1) {
+          // 0=自由态
+          // 1=自动协议直采,2=协议直采,3=手工
+          let condition = innerValue.findIndex((item) => {
+            let cTime = new Date(item.createTime).getTime();
+            let time = new Date();
+            let cap = 7 * 24 * 60 * 60 * 1000;
+
+            return (
+              item.status !== "0" || time - cTime > cap || item.source === "3"
+            );
+          });
+
+          if (condition === -1) return false;
+        }
+        return true;
+      },
+      set() {},
+    },
+  },
+  methods: {
+    async open() {
+      this.$confirm("是否继续执行合单操作?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(async () => {
+          try {
+            this.$modal.loading("提交中...");
+            let puOrderIds = this.innerValue.map((item) => Number(item.id));
+            let { code, msg } = await merge({ puOrderIds });
+            if (code == 200) {
+              this.$notify.success({
+                message: msg,
+              });
+              this.$emit("success");
+            }
+          } catch (error) {
+          } finally {
+            this.$modal.closeLoading();
+          }
+        })
+        .catch(() => {});
+    },
+  },
+  created() {},
+  mounted() {},
+};
+</script>
+
+<template>
+  <el-button
+    @click="open"
+    v-bind="$attrs"
+    :disabled="disabled"
+    v-hasPermi="['material:order:merge']"
+    >{{ title }}</el-button
+  >
+</template>

+ 12 - 2
src/views/purchase/purchase-order/index.vue

@@ -36,9 +36,10 @@ export default {
     ZdgbButton: () => import("./close/allClose.vue"),
     HgbButton: () => import("./close/itemClose.vue"),
     HdkButton: () => import("./close/itemOpen.vue"),
-    CounterApprove: () => import("./fs/index.vue"),
+    CounterApprove: () => import("./fan-shen/index.vue"),
     QueryScheme: () => import("@/components/query-scheme/index.vue"),
     thButton: () => import("./tui-hui/index.vue"),
+    HdButton: () => import("./he-dan/index.vue"),
   },
   data() {
     const initTabColumns = () => TabColumns;
@@ -752,7 +753,7 @@ export default {
           >
           <el-button :size="size" @click="handleDownload">批量导出</el-button>
         </el-button-group>
-        <el-button-group>
+        <el-button-group style="margin: 0 10px">
           <zp-button
             :size="size"
             :select-data="checkedList"
@@ -766,6 +767,15 @@ export default {
             @success="fetchList(params, page)"
           ></counter-approve>
         </el-button-group>
+
+        <el-button-group>
+          <hd-button
+            :size="size"
+            :select-data="checkedList"
+            @success="fetchList(params, page)"
+          >
+          </hd-button>
+        </el-button-group>
       </el-col>
     </el-row>