Răsfoiți Sursa

预估单转销售单

lishougeng 1 an în urmă
părinte
comite
cbdcabc4f5
3 a modificat fișierele cu 113 adăugiri și 18 ștergeri
  1. 41 0
      src/api/aps/presalesorder.js
  2. 3 4
      src/utils/request.js
  3. 69 14
      src/views/aps/presalesorder/index.vue

+ 41 - 0
src/api/aps/presalesorder.js

@@ -2,6 +2,47 @@ import request from '@/utils/request';
 import store from '@/store';
 import Vue from 'vue';
 
+
+// 转销售订单
+export async function createOrUpdate(data) {
+  const res = await request.post('/aps/presalesorder/createOrUpdate',data);
+
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(res.data); //报错处理
+
+}
+
+// 一次性转销售订单
+export async function createAll(data) {
+  const res = await request.post('/aps/presalesorder/createAll',data);
+
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(res.data); //报错处理
+
+}
+
+// 批量导入文件
+export async function exportFile() {
+  const res = await request.get('/aps/presalesorder/export/1',
+  {"responseType":"blob"});
+  // console.log(res);
+  download(res.data,"交期预估");
+}
+
+export function download(data, name){
+  const a= document.createElement('a');
+  const url = window.URL.createObjectURL(data);
+  const filename = name;
+  a.href = url;
+  a.download = filename,
+  a.click();
+  window.URL.revokeObjectURL(url);
+}
+
 // 批量导入文件
 export async function importFile(data) {
   const res = await request.post('/aps/presalesorder/importFile', data);

+ 3 - 4
src/utils/request.js

@@ -34,14 +34,14 @@
      if (token && config.headers) {
        config.headers.common[TOKEN_HEADER_NAME] = token;
      }
- 
+
      return config;
    },
    (error) => {
      return Promise.reject(error);
    }
  );
- 
+
  /**
   * 添加响应拦截器
   */
@@ -81,6 +81,5 @@
      return Promise.reject(error);
    }
  );
- 
+
  export default service;
- 

+ 69 - 14
src/views/aps/presalesorder/index.vue

@@ -107,9 +107,27 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
+        >导出</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :disabled="single"
+          @click="handleSaleorder"
         >转销售订单</el-button>
       </el-col>
-
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleAllSaleorder"
+        >一次性转销售订单</el-button>
+      </el-col>
     </el-row>
 
     <el-table v-loading="loading" :data="salesorderList" @selection-change="handleSelectionChange">
@@ -310,10 +328,10 @@
 </template>
 
 <script>
-import { importFile, listSalesorder, getSalesorder, delSalesorder, addSalesorder, updateSalesorder,listSalesorderExpect,occupyRes,listSalesorderOccupyRes,listSalesorderExpectAll,occupyAllRes} from "@/api/aps/presalesorder";
+import {createAll,createOrUpdate ,exportFile, importFile, listSalesorder, getSalesorder, delSalesorder, addSalesorder, updateSalesorder,listSalesorderExpect,occupyRes,listSalesorderOccupyRes,listSalesorderExpectAll,occupyAllRes} from "@/api/aps/presalesorder";
 import { API_BASE_URL, TOKEN_HEADER_NAME, LAYOUT_PATH } from '@/config/setting';
  import { getToken, setToken } from '@/utils/token-util';
-
+import { download } from '@/utils/request';
 export default {
   name: "PreSalesorder",
   data() {
@@ -433,10 +451,10 @@ export default {
     },
     /** 查询销售订单列表 */
     getList() {
-      console.log("getList")
+      // console.log("getList")
       this.loading = true;
       listSalesorder(this.queryParams).then(response => {
-        console.log(response)
+        // console.log(response)
         this.salesorderList = response;
         this.total = response.total;
         this.loading = false;
@@ -543,7 +561,7 @@ export default {
       getSalesorder(id).then(response => {
         // console.log(response);
         let saleorder = response.data;
-        if (saleorder.status=="1") {
+        if (saleorder.status=="1"||saleorder.status=="2") {
           this.$message.success("已经分配过资源");
           return;
         }
@@ -636,10 +654,50 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('aps/salesorder/export', {
-        ...this.queryParams
-      }, `salesorder_${new Date().getTime()}.xlsx`)
+      this.loading = true;
+      exportFile(this.queryParams).then(res => {
+        this.loading = false;
+
+      });
     },
+
+
+/** 转销售单按钮操作 */
+    handleAllSaleorder() {
+
+     this.loading = true;
+        let saleorder = {};
+        //如果是已经占用资源,则显示已经占用的资源,不能重复
+        createAll(saleorder).then(response => {
+          this.$message.success("转换成功");
+          this.loading = false;
+        });
+    },
+    /** 转销售单按钮操作 */
+    handleSaleorder(row) {
+      const id = row.id || this.ids
+      getSalesorder(id).then(response => {
+        let saleorder = response.data;
+        this.form = response.data;
+        console.log(saleorder);
+        //如果是已经占用资源,则显示已经占用的资源,不能重复
+        if (saleorder.status=="1"){
+            createOrUpdate(saleorder).then(response => {
+              this.$message.success("转换成功");
+            });
+            return;
+
+        }
+        else if (saleorder.status=="0"){
+          //如果没有
+          this.$message.success("没有交期预估");
+        } else if (saleorder.status=="2") {
+          //如果没有
+          this.$message.success("已经转换过了");
+        }
+      });
+    },
+
     /*销售单交期预估*/
     handleExpect(row){
       const id = row.id || this.ids
@@ -649,7 +707,7 @@ export default {
         this.form = response.data;
         console.log(saleorder);
         //如果是已经占用资源,则显示已经占用的资源,不能重复
-        if (saleorder.status=="1"){
+        if (saleorder.status=="1"||saleorder.status=="2"){
 
           listSalesorderOccupyRes(saleorder).then(response => {
               this.salesorderExpectList = response;
@@ -659,7 +717,7 @@ export default {
             });
           return;
         }
-        else{
+        else if (saleorder.status=="0"){
 
           listSalesorderExpect(saleorder).then(response => {
             this.salesorderExpectList = response;
@@ -681,9 +739,6 @@ export default {
             this.single = true;
             this.multiple = false;
           });
-
-
-
     },
     /** 下载模板操作 */
     importTemplate() {