Bläddra i källkod

仓库 导出 打印 sdy

zhongtianhaoyuan 3 år sedan
förälder
incheckning
d1c3f7b8f9

+ 286 - 0
public/static/warehousePrint.html

@@ -0,0 +1,286 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8" />
+    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" />
+    <title></title>
+    <style>
+      table,
+      table tr th,
+      table tr td {
+        border: 2px solid #333333;
+        padding: 5px 0;
+      }
+
+      #app {
+        height: 88vh;
+        position: relative;
+      }
+
+      .content {
+        width: 1000px;
+        /* height: 583px; */
+        margin: auto;
+        /* position: absolute; */
+        /* top: -5vh; */
+        /* bottom: 0;
+        left: 0;
+        right: 0; */
+      }
+
+      table {
+        width: 100%;
+        text-align: center;
+        border-collapse: collapse;
+        border: 3px solid #333333;
+      }
+
+      .col-bgc {
+        background: #f6f7fb;
+      }
+
+      .bottom-row1 {
+        display: flex;
+        justify-content: space-between;
+        margin: 20px 0;
+      }
+
+      .bottom-row2 {
+        display: flex;
+        margin: 10px 0;
+      }
+
+      img {
+        width: 41px;
+        height: 41px;
+        /* margin-right: 118px; */
+      }
+
+      .config {
+        margin-right: 240px;
+      }
+
+      .bottom-row3 {
+        margin: 10px 0;
+      }
+
+      .title {
+        text-align: center;
+        font-size: 24px;
+      }
+
+      .number {
+        text-align: right;
+        margin-bottom: 10px;
+      }
+
+      .small-row {
+        display: flex;
+      }
+
+      .small-content {
+        width: 400px;
+        margin: 0 auto;
+        border: 1px solid #ccc;
+        padding: 20px 20px 160px 20px;
+        position: absolute;
+        top: 0;
+        bottom: 0;
+        left: 0;
+        right: 0;
+        margin: auto;
+        height: 650px;
+      }
+
+      .small-title {
+        text-align: center;
+        font-size: 18px;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+      }
+
+      .small-row {
+        display: flex;
+        justify-content: space-between;
+        margin: 10px;
+      }
+
+      .small-img {
+        margin-right: 0;
+      }
+
+      .sign {
+        margin-right: 100px;
+      }
+
+      .header {
+        display: flex;
+        justify-content: space-between;
+        font-size: 16px;
+        margin: 10px 0;
+      }
+
+      .header1 {
+        font-size: 24px;
+        margin: 30px 60px 10px 60px;
+        display: flex;
+        justify-content: center;
+      }
+
+      .line {
+        height: 2px;
+        width: 410px;
+        margin: 3px auto;
+        background: black;
+      }
+
+      .line:nth-of-type(3) {
+        margin-bottom: 30px;
+      }
+
+      .header-top {
+        display: flex;
+        justify-content: space-between;
+      }
+
+      .sfcard {}
+
+      .sfcard-content {
+        display: flex;
+        align-items: center;
+        justify-content: space-evenly;
+      }
+
+      .sfcard-content img {
+        width: 45%;
+        height: 50vh;
+      }
+
+      .sfcard-title {
+        font-size: 28px;
+        text-align: center;
+        margin: 10px 0;
+      }
+
+      .avatar {
+        margin-bottom: 120px;
+      }
+
+      .avatar:nth-of-type(2) {
+        margin-bottom: 140px;
+      }
+
+      .center {
+       height: calc(100vh - 8px);
+      }
+    </style>
+  </head>
+  <body>
+    <div id="app">
+      <div v-for="(item,index) in printData1" :key="index">
+      <div class="center">
+        <div class="title">**公司-***仓库出/入库单</div>
+        <table class="table">
+            <tr class="row">
+                 <th>出库日期</th>
+                 <th>合同/业务编号</th>
+                 <th>客户</th>
+                 <th>货名</th>
+                 <th>车牌号</th>
+                 <th>箱号</th>
+                 <th>车厢号</th>
+                 <th>毛重</th>
+                 <th>皮重</th>
+                 <th>净重</th>
+            </tr>
+          <tr class="row">
+            <td class="col">买方</td>
+            <td class="col">单位名称</td>
+            <td class="col">{{ item.compName}}</td>
+            <td class="col">卖方</td>
+            <td class="col">姓名</td>
+            <td class="col">{{ item.customerName}}</td>
+            <td class="col">{{ item.customerName}}</td>
+            <td class="col">{{ item.customerName}}</td>
+            <td class="col">{{ item.customerName}}</td>
+            <td class="col">{{ item.customerName}}</td>
+          </tr>
+        </table>
+        <!-- <div class="bottom">
+        </div> -->
+      </div>
+    </div>
+    </div>
+  </body>
+  <script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
+  <script src="https://unpkg.com/element-ui/lib/index.js"></script>
+  <script type="text/javascript">
+    new Vue({
+      el: '#app',
+      data: {
+        showType: [],
+        printData: [
+            {
+                identityAuthenticationInfo:{},
+                qualityInspectionManagement:{},
+                weighingManagement:{},
+                customerNumberCard:{},
+            }
+        ],
+        printData1: [],
+        customerList: {},
+        customerList1: [],
+       
+        date: '',
+     
+      },
+      computed: {},
+      methods: {
+        dealNo(str) {
+          return str.slice(4)
+        },
+        tableRowClassName({
+          row,
+          rowIndex
+        }) {
+          if (rowIndex === 1) {
+            return 'warning-row'
+          } else if (rowIndex === 3) {
+            return 'success-row'
+          }
+          return ''
+        },
+        getQueryVariable(variable) {
+          var query = window.location.search.substring(1)
+          var vars = query.split('&')
+          for (var i = 0; i < vars.length; i++) {
+            var pair = vars[i].split('=')
+            if (pair[0] == variable) {
+              return pair[1]
+            }
+          }
+          return false
+        },
+        printSmall() {},
+        printBig() {}
+      },
+      mounted() {
+        this.date = new Date().toLocaleString()
+        // let _data = decodeURIComponent(this.getQueryVariable('dataList'))
+        // console.log("cdsjkvdjkljklkcj",JSON.parse(_data))
+        // inOutRecord_print
+        this.printData = JSON.parse(sessionStorage.getItem('inOutRecord_printBD'))
+        this.printData1 = JSON.parse(sessionStorage.getItem('inOutRecord_printJSD'))
+        console.log("磅单",this.printData)
+        console.log("结算单",this.printData1)
+        // document.title = this.printData.compName + '结算凭证'
+        window.print()
+        window.onafterprint = function(event) {
+          window.history.back(-1)
+        }
+      },
+      watch: {}
+    })
+  </script>
+</html>

+ 2 - 0
src/api/V2/warehouse/index.js

@@ -80,5 +80,7 @@ export const API_GET_WAREHOUSETASK = '/inOutWarehouseTask/selectWarehouseTask'
 export const API_GET_CHECKORUPDATE = '/inOutWarehouseTask/api/checkOrUpdateInOutTask'
 // 获取出入库任务编号
 export const API_GET_RECEIPTTASKNO = '/inOutWarehouseTask/selectInOutWarehouseNo'
+//导出
+export const API_POST_EXPORT = '/warehouseBaseInfo/export'
 
 

+ 5 - 1
src/model/warehouse/index.js

@@ -38,7 +38,8 @@ import {
     API_GET_WAREHOUSERESPONSIBLE,
     API_GET_WAREHOUSETASK,
     API_GET_CHECKORUPDATE,
-    API_GET_RECEIPTTASKNO
+    API_GET_RECEIPTTASKNO,
+    API_POST_EXPORT,
 } from '@/api/V2/warehouse'
 // import { app } from 'electron'
 // 列表
@@ -118,3 +119,6 @@ export const getwarehousetask = appRx.get(API_GET_WAREHOUSETASK,errorCatcher, er
 export const postcheckorupdate = appRx.post(API_GET_CHECKORUPDATE,errorCatcher, errorHandle, filter)
 //获取出入库任务编号
 export const getReceiptTaskNo = appRx.get(API_GET_RECEIPTTASKNO,errorCatcher, errorHandle, filter)
+//导出
+export const postExport = appRx.post(API_POST_EXPORT,errorCatcher, errorHandle, filter)
+

+ 0 - 3
src/views/houseSelfCollect/inspectionManagement.vue

@@ -67,9 +67,6 @@
 					<span
 						v-if="scope.row.reInspector && scope.row.qualityInspector != scope.row.reInspector">,{{scope.row.reInspector}}</span>
 				</template>
-
-
-
 			</el-table-column>
 			<el-table-column prop="updateDate" label="质检时间" width="90px"></el-table-column>
 			<el-table-column prop="status" label="状态">

+ 1 - 1
src/views/tradeServicesManagement/approveWarehouseReceipt.vue

@@ -249,7 +249,7 @@
       </el-form-item>
 	
 	 <div class="custom">
-		  <div class="custom1"><el-input type="text" v-model="deptBudgetList.modifyExpense1" :disabled="costOne" maxlength="8"></el-input></div>
+		  <div class="custom1"><el-input type="text" v-model="deptBudgetList.modifyExpense1" :disabled="costOne" maxlength="8" ></el-input></div>
 		  <div class="custom2"><el-input type="number" v-model="deptBudgetList.applicationAmount" placeholder="请输入金额" :disabled="costOne" @input="customEdit" ></el-input></div>
 		  <span @click="switch1(1)" class="span_text">{{deptBudgetList.applicationAmountFlag}}</span>
 	  </div>

+ 176 - 25
src/views/warehouse/warehouseManagementList.vue

@@ -28,6 +28,8 @@
           " @click="handleDelete()">删除</ws-button>
         <ws-button v-if='list.length>0'
            @click="handlTask()">任务</ws-button>
+           <ws-button @click="outData(1)">导出</ws-button>
+           <ws-button @click="outData(2)">打印</ws-button>
       </template>
       <template slot="left">
         <div >
@@ -272,6 +274,53 @@
       </el-table>
       
     </div>
+
+
+
+    <div class="mask" v-show="isShowPrintType"></div>
+    <div class="print-type" v-show="isShowPrintType">
+      <div class="print-type-content">
+        <div class="print-type-title">{{headerText}}</div>
+        <div class="print-type-checkbox">
+            <el-form ref="form"  label-width="110px">
+              <el-form-item label="类型" v-if="headerText == '打印记录'">
+            <el-radio-group v-model="parameter.radio" >
+                <el-radio :label="1">入库记录</el-radio>
+                <el-radio :label="2">出库记录</el-radio>
+             </el-radio-group>
+              </el-form-item>
+              <el-form-item label="起始日期">
+              <el-date-picker type="date" placeholder="请选择起始日期" v-model="parameter.startDate"></el-date-picker>
+              </el-form-item>
+              <el-form-item label="截止日期">
+              <el-date-picker type="date" placeholder="请选择截止日期" v-model="parameter.endDate" ></el-date-picker>
+              </el-form-item>
+               <!--仓库名称-->
+            <el-form-item label="仓库名称" span="1" prop="warehouseName" >
+              <el-select
+                v-model="parameter.warehouseName"
+                placeholder="请选择仓库名称"
+              >
+                <el-option
+                  v-for="item in packtypeList"
+                  :key="item.constKey"
+                  :label="item.warehouseName"
+                  :value="item.warehouseName"
+                />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="增量比例(%)" v-if="headerText == '打印记录'">
+             <el-input placeholder="请输入增量比例" v-model="parameter.proportion" clearable class="proportion_css"></el-input>
+              </el-form-item>
+            </el-form>
+        </div>
+      </div>
+      <div class="bottom-btn">
+        <el-button @click="submitClick()" >确定</el-button>
+        <!-- <el-button @click="submitClick()" v-if="headerText == '打印记录'">确定</el-button> -->
+        <el-button @click="isShowPrintType = false">取消</el-button>
+      </div>
+    </div>
   </div>
 </template>
 <script>
@@ -283,11 +332,14 @@ import {
   billoperatehis,
   getsponsible,
   clearancee,
+  xiala,
+  postExport
 } from '@/model/warehouse/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
-import { EventBus } from 'base-core-lib'
+// import { EventBus } from 'base-core-lib'
+import {dayjs,EventBus} from 'base-core-lib'
 export default {
   name: 'viewSpareMoney',
   components: {
@@ -339,6 +391,14 @@ export default {
         },
       },
       accessoryTFs: false,
+      isShowPrintType:false,//打印
+      headerText:"",
+     packtypeList:[],//仓库列表
+     parameter:{},
+     date: {
+					year: dayjs().format('YYYY'),
+					month: dayjs().format('MM'),
+				},
     }
   },
   activated() {
@@ -347,7 +407,43 @@ export default {
   },
 
   methods: {
-   
+    //导出、打印
+    outData(index){
+      if(index == 1){
+        this.headerText = "导出入库记录"
+      }else if(index == 2){
+        this.headerText = "打印记录"
+      }
+      // 获取仓库
+      xiala({
+        compId: localStorage.getItem('ws-pf_compId'),
+        warehouseType: this.warehouseType,
+      })
+        .toPromise()
+        .then((response) => {
+          this.packtypeList = response
+        })
+      this.isShowPrintType = true
+    },
+    async submitClick(){
+      // if(this.headerText = "导出入库记录"){
+        const { 
+           data 
+           } = await postExport(this.parameter, {}, {
+          responseType: 'blob'
+        }).toPromise()
+        downloadFile({
+          res: data,
+          fileName: `${
+          this.date.year + (this.date.month ? `-${this.date.month}` : '')
+        }导出记录`,
+          type: 'xls',
+        })
+      // }else if(this.headerText = "打印记录"){
+      //  window.open('../../../../../static/warehousePrint.html')
+      //  console.log(this.parameter)
+      // }
+    },
     //清仓
     clearance(row) {
       console.log(row.outNumber)
@@ -732,29 +828,29 @@ export default {
       this.currentPage = 1
       this.getList()
     },
-    async exportlist() {
-      const { data } = await export1(
-        {
-          compId: localStorage.getItem('ws-pf_compId'),
-          contractType: this.contractType,
-          currentPage: this.currentPage,
-          pageSize: this.pageSize,
-          searchType: this.searchType,
-          searchKeyWord: this.searchKeyWord,
-          startDate: this.startDate,
-          endDate: this.endDate,
-        },
-        {},
-        { responseType: 'blob' }
-      ).toPromise()
-      downloadFile({
-        res: data,
-        fileName: `${
-          this.date.year + (this.date.month ? `-${this.date.month}` : '')
-        }_采购合同`,
-        type: 'xls',
-      })
-    },
+    // async exportlist() {
+    //   const { data } = await export1(
+    //     {
+    //       compId: localStorage.getItem('ws-pf_compId'),
+    //       contractType: this.contractType,
+    //       currentPage: this.currentPage,
+    //       pageSize: this.pageSize,
+    //       searchType: this.searchType,
+    //       searchKeyWord: this.searchKeyWord,
+    //       startDate: this.startDate,
+    //       endDate: this.endDate,
+    //     },
+    //     {},
+    //     { responseType: 'blob' }
+    //   ).toPromise()
+    //   downloadFile({
+    //     res: data,
+    //     fileName: `${
+    //       this.date.year + (this.date.month ? `-${this.date.month}` : '')
+    //     }_采购合同`,
+    //     type: 'xls',
+    //   })
+    // },
   },
 }
 </script>
@@ -843,4 +939,59 @@ export default {
   height: calc(100vh - 124px);
 }
 
+//打印弹窗
+.mask {
+  background: black;
+  width: 100vw;
+  height: 100vh;
+  position: fixed;
+  top: 0;
+  z-index: 99;
+  opacity: 0.3;
+}
+.count{
+  text-align: center;
+  margin-bottom: 10px;
+}
+
+.print-type {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  margin: auto;
+  width: 340px;
+  height: 400px;
+  background: white;
+  border-radius: 10px;
+  z-index: 999;
+  .bottom-btn{
+    text-align: center;
+  }
+}
+.print-type-title {
+  text-align: center;
+  font-size: 18px;
+  // margin: 20px;
+  margin: 20px 20px 10px;
+}
+.print-type-checkbox {
+  padding-left: 20px;
+  .el-date-editor.el-input{
+    width: 85% !important;
+  }
+  .proportion_css{
+    width: 85%;
+  }
+}
+.page2-content {
+  border: 1px solid #d8dce6;
+  margin-top: 20px;
+  padding: 10px;
+  box-sizing: border-box;
+  text-align: center;
+  border-radius: 4px;
+  padding-bottom: 20px;
+}
 </style>