Bladeren bron

细码单报表

jz.kai 2 jaren geleden
bovenliggende
commit
8d521cb556

BIN
public/favicon.ico


+ 9 - 1
src/api/base/work.js

@@ -45,6 +45,14 @@ function findList(formData){
   return request.post(constant.serverUrl + "/base/work/findList", formData);
 }
 
+function tableXMD(formData){
+  return request.post(constant.serverUrl + "/base/work/tableXMD", formData);
+}
+
+function tableXMDXls(formData){
+  return request.post(constant.serverUrl + "/base/work/tableXMDXls", formData);
+}
+
 export default {
-  pageList,create,edit,add,update,remove,batchRemove,findList
+  pageList,create,edit,add,update,remove,batchRemove,findList,tableXMD,tableXMDXls
 }

BIN
src/assets/logo.png


BIN
src/assets/logoGroup.png


+ 13 - 2
src/views/base/work-list.vue

@@ -59,8 +59,9 @@
       <el-table-column prop="wages" label="力资(元/卷)" width="180"></el-table-column>
       <el-table-column prop="rollLength" label="卷长(米/卷)" width="180"></el-table-column>
       <el-table-column prop="remark" label="备注"></el-table-column>
-      <el-table-column label="操作" fixed="right" width="210px">
+      <el-table-column label="操作" fixed="right" width="290px">
         <template slot-scope="{row}">
+          <el-button size="mini" @click="handleXMD(row)">细码单</el-button>
           <el-button v-if="row.haveBills == false" size="mini" type="info" @click="handleBill(row)">账单</el-button>
           <el-button v-if="row.haveBills == false" size="mini" type="warning" @click="handleEdit(row)">编辑</el-button>
           <el-button v-if="row.haveBills == false" size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
@@ -70,12 +71,14 @@
     <el-pagination :current-page.sync="pageIndex" :total="totalElements" :page-sizes="pageSizeList" @current-change="changePage" @size-change="pageSizeChange" layout="total, sizes, prev, pager, next, jumper"></el-pagination>
     <work-detail v-if="showModal" :businessKey="businessKey" :title="modalTitle" @close="onDetailModalClose"></work-detail>
     <work-bill v-if="showBill" :businessKey="businessKey" :title="modalTitle" @close="onDetailModalClose"></work-bill>
+    <work-xmd v-if="showXMD" :businessKey="businessKey" :title="modalTitle" @close="onDetailModalClose"></work-xmd>
   </div>
 </template>
 <script>
 import Constant from "@/constant";
 import WorkDetail from "./work-detail";
 import WorkBill from "./work-bill";
+import WorkXMD from "./work-xmd";
 import workApi from "@/api/base/work";
 import customerApi from "@/api/base/customer";
 import NProgress from "nprogress"; // progress bar
@@ -103,6 +106,7 @@ export default {
       multipleSelection: [],
       showModal: false,
       showBill: false,
+      showXMD: false,
       modalTitle: "",
       businessKey: "",
       customerList: [],
@@ -171,6 +175,11 @@ export default {
       this.businessKey = record.id;
       this.showBill = true;
     },
+    handleXMD(record) {
+      this.modalTitle = "细码单";
+      this.businessKey = record.id;
+      this.showXMD = true;
+    },
     handleDelete(record) {
       var self = this;
 
@@ -224,6 +233,7 @@ export default {
     onDetailModalClose(refreshed) {
       this.showModal = false;
       this.showBill = false;
+      this.showXMD = false;
 
       if (refreshed) {
         this.changePage(this.pageIndex);
@@ -239,7 +249,8 @@ export default {
   },
   components: {
     "work-detail": WorkDetail,
-    "work-bill": WorkBill
+    "work-bill": WorkBill,
+    "work-xmd": WorkXMD
   }
 };
 </script>

+ 100 - 0
src/views/base/work-xmd.vue

@@ -0,0 +1,100 @@
+<style scoped>
+.user-panel {
+  margin: 10px auto;
+}
+</style>
+<template>
+  <el-dialog :visible.sync="showDialog" :title="title" :modal-append-to-body="false" style="text-align:left;" @close="closeDialog" :close-on-click-modal="false">
+    <div class="user-panel" v-loading="loading">
+      <table width="100%">
+        <tr>
+          <td>客户:{{dataCustomer}}</td>
+          <td>订单号:{{dataNumber}}</td>
+          <td>品名:{{dataName}}</td>
+          <td>幅宽:{{dataWidth}}</td>
+          <td>单位:米</td>
+        </tr>
+      </table>
+      <el-table :data="dataList" style="min-height:400px;" v-loading="loading" stripe>
+        <el-table-column prop="sort" label="序号"></el-table-column>
+        <el-table-column prop="number" label="编号"></el-table-column>
+        <el-table-column prop="length" label="米数"></el-table-column>
+      </el-table>
+      <div>件数:{{totalCount}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;米数:{{totalLength}}</div>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="closeDialog">关 闭</el-button>
+      <el-button type="primary" @click="exportXls" :loading="loading">下载</el-button>
+    </span>
+  </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import workApi from "@/api/base/work";
+
+export default {
+  props: ["businessKey", "title"],
+  data() {
+    return {
+      showDialog: true,
+      loading: false,
+      dataCustomer: "",
+      dataNumber: "",
+      dataName: "",
+      dataWidth: "",
+      dataList: [],
+      totalCount: "",
+      totalLength: ""
+    };
+  },
+  methods: {
+    exportXls() {
+      var self = this;
+      self.loading = true;
+
+      var formData = new FormData();
+      formData.append("workId", self.businessKey);
+
+      workApi.tableXMDXls(formData).then(function (response) {
+        self.loading = false;
+
+        var jsonData = response.data;
+        self.$message({
+          showClose: true,
+          dangerouslyUseHTMLString: true,
+          message: jsonData.message + `,<a href="${jsonData.data}" target="_blank">点击下载</a>&nbsp;`,
+          duration: 30000,
+        });
+      }).catch((error) => {
+        self.loading = false;
+      });
+    },
+    closeDialog() {
+      this.$emit("close", false);
+    },
+  },
+  mounted: function () {
+    var self = this;
+    self.loading = true;
+
+    var formData = new FormData();
+    formData.append("workId", self.businessKey);
+    workApi.tableXMD(formData).then(response => {
+      var jsonData = response.data;
+      self.loading = false;
+
+      if (jsonData.result) {
+        self.dataCustomer = jsonData.data.customer;
+        self.dataNumber = jsonData.data.number;
+        self.dataName = jsonData.data.name;
+        self.dataWidth = jsonData.data.width;
+        self.dataList = jsonData.data.list;
+        self.totalCount = jsonData.data.totalCount;
+        self.totalLength = jsonData.data.totalLength;
+      } else {
+        self.$message.error(jsonData.message + "");
+      }
+    });
+  }
+};
+</script>

+ 2 - 2
src/views/layout/index.vue

@@ -2,7 +2,7 @@
   <el-container class="outter-container">
     <el-header>
       <h3>
-        <img src="../../assets/logoGroup.png" height="50" width="200"/>
+        <img src="../../assets/logoGroup.png" height="50"/>
       </h3>
       <div class="user-info">
         <el-dropdown @command="handleCommand">
@@ -18,7 +18,7 @@
           </el-dropdown-menu>
         </el-dropdown>
       </div>
-      <div style="position:absolute;bottom:0px;left:275px;right:400px;">
+      <div style="position:absolute;bottom:0px;left:190px;right:400px;">
         <tags-view />
       </div>
     </el-header>