zhoumiaomiao пре 9 месеци
родитељ
комит
2219754687

+ 11 - 3
src/renderer/components/views/Home.vue

@@ -3,11 +3,15 @@
     <div class="main">
       <a-card hoverable style="width: 300px;margin-right: -200px;" @click="$router.push('/search')">
         <img src="../assets/btn1.png" alt="">
-        <div class="title">提货交货单</div>
+        <div class="title">成品提货单打印</div>
       </a-card>
-      <a-card hoverable style="width: 300px;margin-left: -200px;" @click="$router.push('/searchList')">
+      <a-card hoverable style="width: 300px;margin-left: -0px;" @click="$router.push('/searchList')">
         <img src="../assets/btn1.png" alt="">
-        <div class="title">送货交货单</div>
+        <div class="title">采购送货单打印</div>
+      </a-card>
+      <a-card hoverable style="width: 300px;margin-left: -200px;" @click="$router.push('/searchWaste')">
+        <img src="../assets/btn1.png" alt="">
+        <div class="title">过程品/废旧物资提货单打印</div>
       </a-card>
     </div>
   </div>
@@ -70,6 +74,10 @@ export default {
       &:nth-of-type(2) {
         background-color: #67c23a;
       }
+
+      &:nth-of-type(3) {
+        background-color: red;
+      }
     }
   }
 }</style>

+ 743 - 0
src/renderer/components/views/receiverWasteDeliveryNote.vue

@@ -0,0 +1,743 @@
+<template>
+  <div class="wrapper">
+    <a-card style="height: 800px">
+      <a-form-model layout="inline" :model="searchModel" class="text-center form" size="large">
+        <a-form-model-item label="车牌号">
+          <a-input v-model="searchModel.truckNumber" style="width: 280px" size="large"
+                   ref="deliveryNote" allowClear></a-input>
+        </a-form-model-item>
+        <a-form-model-item label="身份证号码">
+          <a-input v-model="searchModel.identityCard" style="width: 280px" size="large" @focus="handleFocus" allowClear
+                   @change="handleChangeV2"
+                   ref="identityCard"></a-input>
+        </a-form-model-item>
+        <a-form-model-item label="提货单号">
+          <a-input v-model="searchModel.deliveryNote" style="width: 280px" size="large"
+                   ref="deliveryNote" allowClear></a-input>
+        </a-form-model-item>
+        <a-form-model-item>
+          <a-button type="primary" @click="search" size="large">
+            查询
+          </a-button>
+        </a-form-model-item>
+      </a-form-model>
+      <div class="table-operator">
+        <a-row>
+          <a-col :span="10">
+            <a-button type="primary" @click="createAndPrint"  style="width: 120px;height:40px" size="large" :loading="loading">
+              打印
+            </a-button>
+          </a-col>
+          <a-col :span="8">
+            <div class="time">
+              {{ txt }} 秒后自动返回主界面!
+            </div>
+          </a-col>
+        </a-row>
+
+        <!--        <a-button type="primary" @click="print" style="height:60px;width: 100px;margin-left: 1080px" size="large">-->
+        <!--          补打-->
+        <!--        </a-button>-->
+      </div>
+      <a-table :columns="columns" :data-source="list" :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: handleChangeV1 }" size="default"
+               :customHeaderRow="customHeaderRow" :custom-row="customRow"  :pagination="pagination" @change="tablePaginationChange" >
+                <span slot="serial" slot-scope="text, record, index">
+                    {{ index + 1 }}
+                </span>
+      </a-table>
+    </a-card>
+    <a-card>
+      <video id="video" v-ant-ref="(c) => (video = c)" width="1920" height="1080" autoplay hidden></video>
+      <!--            <button id="snap" v-ant-ref="(c) => (snap = c)" hidden>拍照</button>-->
+      <!--            <button id="save" v-ant-ref="(c) => (save = c)" hidden>保存</button>-->
+      <canvas id="canvas" v-ant-ref="(c) => (canvas = c)" width="1920" height="1080" hidden></canvas>
+      <video id="video2" v-ant-ref="(c) => (video2 = c)" width="1920" height="1080" autoplay hidden></video>
+      <canvas id="canvas2" v-ant-ref="(c) => (canvas2 = c)" width="1920" height="1080" hidden></canvas>
+      <video id="video3" v-ant-ref="(c) => (video3 = c)" width="1920" height="1080" autoplay hidden></video>
+      <canvas id="canvas3" v-ant-ref="(c) => (canvas3 = c)" width="1920" height="1080" hidden></canvas>
+    </a-card>
+  </div>
+</template>
+<script>
+
+import moment from 'moment'
+import {sendPrintSock, webSock} from "../../store/modules/hrPrint";
+
+const columns = [
+  {
+    width: 60,
+    title: '序号',
+    scopedSlots: {customRender: 'serial'}
+  },
+  {
+    width: 100,
+    title: '交货单号',
+    dataIndex: 'customerRefferenceId',
+    key: 'customerRefferenceId',
+  },
+  {
+    width: 150,
+    title: '客户名称',
+    dataIndex: 'receiverName',
+    key: 'receiverName',
+  },
+  {
+    width: 100,
+    title: '订单类型',
+    dataIndex: 'orderCenterOrderType',
+    key: 'orderCenterOrderType',
+  },
+  {
+    width: 100,
+    title: '车牌号',
+    key: 'truckNumber',
+    dataIndex: 'truckNumber',
+  },
+  {
+    width: 80,
+    title: '司机姓名',
+    key: 'driver',
+    dataIndex: 'driver'
+  },
+  {
+    width: 100,
+    title: '创建日期',
+    key: 'creationTime',
+    dataIndex: 'creationTime',
+  }
+];
+
+export default {
+  data() {
+    return {
+      dateFormat: "YYYY/MM/DD",
+      moment,
+      searchModel: {
+        factoryCode: '1500',
+        identityCard: undefined,
+        truckNumber: undefined,
+        deliveryNote: undefined,
+        startTime: moment(new Date(new Date().getTime() - 6 * 24 * 60 * 60 * 1000)),
+        endTime: undefined
+      },
+      intervalID:undefined,
+      list: [],
+      dataSourceList: [],
+      columns,
+      selectedRowKeys: [],
+      selectedRows: [],
+      loading: false,
+      deviceIds: [],
+      rowSelection: {
+        onChange: (selectedRowKeys, selectedRows) => {
+          this.selectedRowKeys = selectedRowKeys;
+          this.selectedRows = selectedRows
+        },
+      },
+      options: [ // 下拉框的选项
+
+      ],
+      pagination: {
+        current: 1,
+        // defaultCurrent: 1,
+        total: 0, // 总数
+        showSizeChanger: false,
+        pageSizeOptions: ["10", "20", "50"],
+        showTotal: total => `共 ${total} 条`, // 分页中显示总的数据
+        // hideOnSinglePage: true, // 只有一页时是否隐藏分页器
+        pageSize: 10 // 每页条数,所有页设置统一的条数
+      },
+      video:undefined,
+      canvas:undefined,
+      video2:undefined,
+      canvas2:undefined,
+      video3:undefined,
+      canvas3:undefined,
+      txt: 30,
+      inactivityTimer: ''
+    }
+  },
+  created() {
+    setInterval(() => {
+      this.txt = this.txt -1;
+    }, 1000)
+    this.resetTimer()
+    // 在用户活动时调用 resetTimer 重置定时器
+    document.addEventListener('mousedown', this.resetTimer)
+    document.addEventListener('keydown', this.resetTimer)
+  },
+  methods: {
+    resetTimer() {
+      this.txt = 30;
+      const self = this
+      clearTimeout(this.inactivityTimer)
+      this.inactivityTimer = setTimeout(() => {
+        // 执行注销操作或者跳转到登录页面的代码
+        self.$router.push('/');
+      }, 0.5 * 60 * 1000) // 30分钟
+    },
+    tablePaginationChange (pagination) {
+      // console.log(pagination)
+      this.pagination.current = pagination.current  // 重新设置当前页
+      this.pagination.pageSize = pagination.pageSize
+    },
+    search() {
+      const self = this
+      if ((self.searchModel.truckNumber === undefined || self.searchModel.truckNumber === null || self.searchModel.truckNumber === '')
+      && (self.searchModel.identityCard === undefined || self.searchModel.identityCard === null || self.searchModel.identityCard === '')
+      && (self.searchModel.deliveryNote === undefined || self.searchModel.deliveryNote === null || self.searchModel.deliveryNote === '')) {
+        this.$message.info('至少填写一个信息', 2);
+        return;
+      }
+      if (self.searchModel.identityCard !== undefined || self.searchModel.identityCard !== null || self.searchModel.identityCard !== '') {
+        if (self.searchModel.identityCard.length !== 18) {
+          this.$message.info('身份信息填写有误!', 2);
+          return;
+        }
+      }
+      if (self.searchModel.startTime === undefined) {
+        this.$message.info('提货开始时间不能为空', 2);
+        return;
+      }
+      let endTime = moment(new Date()).format('YYYY-MM-DD');
+      if (self.searchModel.endTime !== undefined && self.searchModel.endTime !== null) {
+        endTime = self.searchModel.endTime.format('YYYY-MM-DD')
+      }
+      self.list = [];
+      self.selectedRowKeys = [];
+      self.selectedRows = [];
+      self.axios({
+        method: "post",//指定请求方式
+        url: "/Print/searchWasteDeliveryNote.action",//请求接口(相对接口,后面会介绍到)
+        params: {
+          // factoryCode: self.searchModel.factoryCode,
+          truckNumber: self.searchModel.truckNumber,
+          identityCard: self.searchModel.identityCard,
+          deliveryNote: self.searchModel.deliveryNote,
+          loginName: self.default_login_name,
+          startTime: self.searchModel.startTime.format('YYYY-MM-DD'),
+          endTime: endTime
+        }
+      })
+        .then(function (res) {
+          if (res.data.code === 'fail' || res.data.data === null || res.data.data.length === 0  ) {
+            self.$message.info('暂无预约信息,请检查信息填写是否有误或联系车队,尽快预约!', 2);
+            return;
+          } else {
+            self.$message.info('请在下方指示位置放好身份证,行驶证,驾驶证!', 5);
+            res.data.data.forEach(order => {
+              order.key = order.zorderno + order.zresno
+              order.kwmeng = 0
+              order.arktx = ''
+              order.items.forEach(item => {
+                order.kwmeng += item.kwmeng
+                order.arktx += item.arktx
+              })
+              self.list.push(order)
+            });
+            const pagination = { ...self.pagination }
+            pagination.current = 1
+            // 重新设置当前页 才会生效
+            self.tablePaginationChange(pagination)
+          }
+        })
+    },
+    createAndPrint() {
+      const self = this
+
+      if(webSock.readyState !== webSock.OPEN) {
+        this.$message.info('请检查打印插件是否开启!', 2);
+        return
+      }
+
+      if (self.selectedRowKeys.length === 0) {
+        this.$message.info('请选择提货单打印!', 2);
+        return;
+      }
+      self.loading = true
+      var video = self.video;
+      var canvas = self.canvas;
+      var video2 = self.video2;
+      var canvas2 = self.canvas2;
+      var video3 = self.video3;
+      var canvas3 = self.canvas3;
+      // Get access to the camera!
+      if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
+        // Not adding `{ audio: true }` since we only want video now
+        for (let i = 0; i < self.deviceIds.length; i++) {
+          navigator.mediaDevices.getUserMedia({ video: {
+              deviceId: {exact: self.deviceIds[i]},
+              width: 1920,
+              height: 1080,
+            }
+          })
+            .then(function(stream) {
+              // 访问成功,可以做一些处理,比如显示摄像头画面
+              if (i == 0) {
+                video.srcObject = stream;
+                video.play();
+              } else if (i == 1) {
+                video2.srcObject = stream;
+                video2.play();
+              } else if (i == 2) {
+                video3.srcObject = stream;
+                video3.play();
+              }
+            })
+            .catch(function(err) {
+              console.log(err.name + ": " + err.message);
+            });
+        }
+      }
+      setTimeout(function () {
+        let formData = new FormData();
+        formData.append('list',JSON.stringify(self.selectedRows));
+        formData.append('loginName',self.default_login_name);
+        for (let i = 0; i < self.deviceIds.length; i++) {
+          if (i == 0) {
+            var context = canvas.getContext('2d');
+            context.drawImage(video, 0, 0, 1920, 1080);
+            var picBase64 = canvas.toDataURL()
+            formData.append('file1',self.base64toBlob(picBase64));
+          } else if (i == 1) {
+            var context = canvas2.getContext('2d');
+            context.drawImage(video2, 0, 0, 1920, 1080);
+            var picBase642 = canvas2.toDataURL()
+            formData.append('file2',self.base64toBlob(picBase642));
+          } else if (i == 2) {
+            var context = canvas3.getContext('2d');
+            context.drawImage(video3, 0, 0, 1920, 1080);
+            var picBase643 = canvas3.toDataURL()
+            formData.append('file3',self.base64toBlob(picBase643));
+          }
+        }
+        let config = {
+          headers:{'Content-Type':'multipart/form-data'}
+        };
+
+        self.axios.post('/Print/printWasteDeliveryNote.action',formData,config)
+          .then(function (res) {
+            self.loading = false
+            console.log(res)
+            if (res.data.code === "success") {
+              const msg = res.data.data
+              var printData = msg.printData;
+              for (const obj of printData) {
+                const printMsg = {
+                  requestData: {
+                    TempleteType: '通用模板',
+                    Acccoutid: msg.accountId,
+                    TempleteVersion: 1,
+                    ShowPreview: 1,
+                    AutoMatch: 1,
+                    TempleteName: '',
+                    ShowPrinterSelect: 1,
+                    Warehouseid: '',
+                    PrintDatas: [obj]
+                  }
+                }
+                sendPrintSock("DoPrint", printMsg, top.getPrintCallback);
+                self.$message.info('打印成功!', 2);
+                self.$router.push('/')
+              }
+              if (null != res.data.data.errMsg && res.data.data.errMsg.length > 0) {
+                res.data.data.errMsg.forEach(mes => {
+                  self.$message.info(mes, 4);
+                });
+              }
+              self.search();
+              // if (self.intervalID) {
+              //   clearInterval(self.intervalID); // 停止定时器
+              // }
+              // self.intervalID = setInterval(function() {
+              //   self.$router.push('/')
+              //   clearInterval(self.intervalID); // 停止定时器
+              // }, 5000); // 1000 毫秒 = 1 秒
+            } else {
+              self.$message.info(res.data.errorDesc, 2);
+              return;
+            }
+          })
+      }, 2000);
+    },
+    base64toBlob(picBase64) {
+      const dataArr = picBase64.split(",");
+      const byteString = atob(dataArr[1]);
+      const options = {
+        type: "image/jpeg",
+        endings: "native"
+      };
+      const u8Arr = new Uint8Array(byteString.length);
+      for (let i = 0; i < byteString.length; i++) {
+        u8Arr[i] = byteString.charCodeAt(i);
+      }
+      return new File([u8Arr], "test" + ".jpg", options);//返回文件流
+    },
+    print() {
+      const self = this
+
+      if(webSock.readyState !== webSock.OPEN) {
+        this.$message.info('请检查打印插件是否开启!', 2);
+        return
+      }
+
+      // var obj = {
+      //   FIELD1: "绥化淀粉副产品库",
+      //   FIELD2: "2022121200001",
+      //   FIELD3: "原盘入储",
+      //   FIELD4: "HSD2301040000002",
+      //   FIELD5: "JXAdmin",
+      //   FIELD7: "仓储物流部",
+      //   FIELD8: 4,
+      //   FIELD9: 0,
+      //   FIELD10: "2023-01-04 10:16:54",
+      //   FIELD11: "",
+      //   FIELD12: "",
+      //   FIELD13: "",
+      //   FIELD14: "",
+      //   DETAILS:[{FIELD1: "入库作业-吨包-集装箱",
+      //     FIELD2: "马良|魏警徽|陈宇驰|",
+      //     FIELD3: "潮玉米",
+      //     FIELD4: 4,
+      //     FIELD5: 4,
+      //     FIELD6: "吨",
+      //     FIELD7: "叉车",
+      //     FIELD9: "叉车",
+      //     FIELD10: "叉车",
+      //     FIELD11: "叉车",
+      //     FIELD12: "叉车",
+      //     FIELD8: "淀粉库-入库-A班"}],
+      //   TEMPLETETYPE: "提货单1"
+      // }
+      // const printMsg = {
+      //   requestData: {
+      //     TempleteType: '通用模板',
+      //     Acccoutid: '1808060000002',
+      //     TempleteVersion: 1,
+      //     ShowPreview: 1,
+      //     AutoMatch: 1,
+      //     TempleteName: '',
+      //     ShowPrinterSelect: 1,
+      //     Warehouseid: '',
+      //     PrintDatas: [obj]
+      //   }
+      // }
+      // sendPrintSock("DoPrint",printMsg,this.getPrintCallback);
+
+      if (self.selectedRowKeys.length === 0) {
+        this.$message.info('请选择交货单打印!', 2);
+        return
+      }
+      for (let i = 0; i < self.selectedRows.length; i++) {
+        if(self.selectedRows[i].vbeln === null || self.selectedRows[i].vbeln === undefined || self.selectedRows[i].vbeln === '')
+        {
+          this.$message.info(self.selectedRows[i].zorderno+'无交货单号,请选择创建并打印交货单号!', 2);
+          return
+        }
+      }
+
+      self.loading = true
+      var video = self.video;
+      var canvas = self.canvas;
+      var video2 = self.video2;
+      var canvas2 = self.canvas2;
+      var video3 = self.video3;
+      var canvas3 = self.canvas3;
+      // Get access to the camera!
+      if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
+        // Not adding `{ audio: true }` since we only want video now
+        for (let i = 0; i < self.deviceIds.length; i++) {
+          navigator.mediaDevices.getUserMedia({ video: { deviceId: { exact: self.deviceIds[i] } } })
+            .then(function(stream) {
+              // 访问成功,可以做一些处理,比如显示摄像头画面
+              if (i == 0) {
+                video.srcObject = stream;
+                video.play();
+              } else if (i == 1) {
+                video2.srcObject = stream;
+                video2.play();
+              } else if (i == 2) {
+                video3.srcObject = stream;
+                video3.play();
+              }
+            })
+            .catch(function(err) {
+              console.log(err.name + ": " + err.message);
+            });
+        }
+      }
+      setTimeout(function () {
+        let formData = new FormData();
+        formData.append('list',JSON.stringify(self.selectedRows));
+        formData.append('loginName',self.default_login_name);
+        for (let i = 0; i < self.deviceIds.length; i++) {
+          if (i == 0) {
+            var context = canvas.getContext('2d');
+            context.drawImage(video, 0, 0, 1920, 1080);
+            var picBase64 = canvas.toDataURL()
+            formData.append('file1',self.base64toBlob(picBase64));
+          } else if (i == 1) {
+            var context = canvas2.getContext('2d');
+            context.drawImage(video2, 0, 0, 1920, 1080);
+            var picBase642 = canvas2.toDataURL()
+            formData.append('file2',self.base64toBlob(picBase642));
+          } else if (i == 2) {
+            var context = canvas3.getContext('2d');
+            context.drawImage(video3, 0, 0, 1920, 1080);
+            var picBase643 = canvas3.toDataURL()
+            formData.append('file3',self.base64toBlob(picBase643));
+          }
+        }
+        let config = {
+          headers:{'Content-Type':'multipart/form-data'}
+        };
+
+        // const formData = new URLSearchParams();
+        // formData.append('list',JSON.stringify(self.selectedRows));
+        // formData.append('loginName', self.default_login_name);
+
+        // self.axios({
+        //   method: "post",//指定请求方式
+        //   url: "/Print/printReceiveDeliveryNote.action",
+        //   headers: {
+        //     'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
+        //   },
+        //   data: formData
+        // })
+        self.axios.post('/Print/printReceiveDeliveryNote.action',formData,config)
+          .then(function (res) {
+            self.loading = false
+            if (res.data.code === "success") {
+              const msg = res.data.data
+              var printData = msg.printData;
+              for (const obj of printData) {
+                const printMsg = {
+                  requestData: {
+                    TempleteType: '通用模板',
+                    Acccoutid: msg.accountId,
+                    TempleteVersion: 1,
+                    ShowPreview: 1,
+                    AutoMatch: 1,
+                    TempleteName: '',
+                    ShowPrinterSelect: 1,
+                    Warehouseid: '',
+                    PrintDatas: [obj]
+                  }
+                }
+                sendPrintSock("DoPrint", printMsg, top.getPrintCallback);
+                self.$message.info('打印成功!', 2);
+                self.$router.push('/');
+                // if (self.intervalID) {
+                //   clearInterval(self.intervalID); // 停止定时器
+                // }
+                // self.intervalID = setInterval(function() {
+                //   self.$router.push('/')
+                //   clearInterval(self.intervalID); // 停止定时器
+                // }, 5000); // 1000 毫秒 = 1 秒
+              }
+            } else {
+              self.$message.info('无单据打印!', 2);
+              return;
+            }
+          })
+      }, 2000);
+    },
+    getPrintCallback(error) {
+      const self = this;
+      if (error.status === 'success') {
+        self.$message.info('getPrintCallback!', 2);
+        console.log('getPrintCallback', error)
+      } else {
+        if (error.cmd === 'print' && (error.msg === 'TaskID 重复' || error.msg === 'taskID重复')) {
+          self.$message.info('运单号:' + error.taskID + ':' + error.msg + '请删除插件任务', 2);
+        }
+        self.$message.info('error' + error, 2);
+        console.log('error', error)
+      }
+    },
+    customHeaderRow(column) {
+      column.forEach((e, index) => {
+        column[index].className = 'tableClass1' // 给数组中的每一列加上一个类名
+      })
+    },
+    handleChangeV1(selectedKeys,selectedRows) {
+      this.selectedRowKeys = selectedKeys; // 更新选中的行
+      this.selectedRows = selectedRows; // 更新选中的行
+    },
+    customRow(record) {
+      return {
+        on: {
+          click: () => {
+            this.selectedRowKeys.push(record.key);
+            this.selectedRows.push(record);
+          }
+        }
+      }
+    },
+    handleFocus() {
+      // 在此处处理聚焦事件
+      const self = this
+      if (self.searchModel.identityCard === undefined || self.searchModel.identityCard === null || self.searchModel.identityCard === '') {
+        let intervalId = setInterval(function () {
+          self.axios({
+            method: "get",//指定请求方式
+            url: "http://localhost:5601/getIDCard",//请求接口(相对接口,后面会介绍到)
+          })
+            .then(function (res) {
+              if (Number(res.data.code) === 200) {
+                self.searchModel.identityCard = res.data.message
+                self.search();
+                clearInterval(intervalId);
+                return;
+              }
+              if (self.searchModel.identityCard !== undefined && self.searchModel.identityCard !== null && self.searchModel.identityCard !== '') {
+                clearInterval(intervalId);
+                return;
+              }
+            })
+            .catch(function (error) {
+              if (error.response) {
+                // 请求已经发出,服务器也返回了状态码,但并不意味着请求是成功的
+                console.log(error.response.data);
+                console.log(error.response.status);
+                console.log(error.response.headers);
+              } else if (error.request) {
+                // 请求已经发出,但没有收到任何响应
+                console.log('Error', error.message);
+              } else {
+                // 在设置请求时触发了一个错误
+                console.log('Error', error.message);
+              }
+              console.log(error.config);
+              clearInterval(intervalId);
+            })
+        }, 2000);
+      }
+    },
+    handleChangeV2() {
+      // 在此处处理聚焦事件
+      const self = this
+      if (self.searchModel.identityCard === undefined || self.searchModel.identityCard === null || self.searchModel.identityCard === '') {
+        let intervalId = setInterval(function () {
+          self.axios({
+            method: "get",//指定请求方式
+            url: "http://localhost:5601/getIDCard",//请求接口(相对接口,后面会介绍到)
+          })
+            .then(function (res) {
+              console.log(res)
+              if (Number(res.data.code) === 200) {
+                self.searchModel.identityCard = res.data.message
+                self.search();
+                clearInterval(intervalId);
+              }
+              if (self.searchModel.identityCard !== undefined && self.searchModel.identityCard !== null && self.searchModel.identityCard !== '') {
+                clearInterval(intervalId);
+                return;
+              }
+            })
+            .catch(function (error) {
+              if (error.response) {
+                // 请求已经发出,服务器也返回了状态码,但并不意味着请求是成功的
+                console.log(error.response.data);
+                console.log(error.response.status);
+                console.log(error.response.headers);
+              } else if (error.request) {
+                // 请求已经发出,但没有收到任何响应
+                console.log('Error', error.message);
+              } else {
+                // 在设置请求时触发了一个错误
+                console.log('Error', error.message);
+              }
+              console.log(error.config);
+              clearInterval(intervalId);
+            })
+        }, 2000);
+      }
+    },
+    getDevices() {
+      const self = this;
+      try {
+        navigator.mediaDevices.enumerateDevices()
+          .then(function(devices) {
+            devices.forEach(function(device) {
+              if (device.kind === 'videoinput') {
+                self.deviceIds.push(device.deviceId)
+                console.log(self.deviceIds)
+              }
+            });
+          })
+          .catch(function(err) {
+            console.log(err.name + ": " + err.message);
+          });
+      } catch (err) {
+        console.log(err.name + ": " + err.message);
+      }
+    }
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.$refs.identityCard.focus()
+    })
+    const self = this
+    self.getDevices()
+    self.axios({
+      method: "post",//指定请求方式
+      url: "/Print/getCustomerList.action",//请求接口(相对接口,后面会介绍到)
+      params: {
+        loginName: self.default_login_name
+      }
+    })
+      .then(function (res) {
+        if (res.data.data === null || res.data.code === 'fail') {
+          self.$message.info('未查询到用户的工厂', 2);
+          return;
+        } else {
+
+          res.data.data.forEach(customer => {
+            const object = {}
+            object.value = customer.customerCode
+            object.label = customer.customerName
+            self.options.push(object)
+          });
+        }
+      })
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.wrapper {
+  background: #f0f2f5;
+  padding: 24px;
+}
+
+.form {
+  /deep/ .ant-form-item {
+    margin-bottom: 24px;
+  }
+}
+
+.table-operator {
+  margin-bottom: 18px;
+  text-align: left;
+}
+
+.text-left {
+  text-align: left;
+}
+
+.text-center {
+  text-align: center;
+}
+
+/deep/ .tableClass1 {
+  font-size: 16px;
+}
+
+.time {
+  color: #333;
+  font-size: 22px;
+  font-weight: 700;
+  color: red;
+}
+</style>

+ 12 - 2
src/renderer/router/index.js

@@ -15,7 +15,7 @@ export default new Router({
       path: '/search',
       name: 'Search',
       meta: {
-        title: '提货交货单'
+        title: '成品提货单打印'
       },
       component: function () {
         return import('../components/views/receiveDeliveryNote.vue')
@@ -25,12 +25,22 @@ export default new Router({
       path: '/searchList',
       name: 'SearchList',
       meta: {
-        title: '送货交货单'
+        title: '采购送货单打印'
       },
       component: function () {
         return import('../components/views/sendDeliveryNote.vue')
       }
     },
+    {
+      path: '/searchWaste',
+      name: 'SearchWaste',
+      meta: {
+        title: '过程品/废旧物资提货单打印'
+      },
+      component: function () {
+        return import('../components/views/receiverWasteDeliveryNote.vue')
+      }
+    },
     {
       path: '/detail',
       name: 'Detail',