skyouc
2024-12-21 c9c263dc43ad90f95f24a036cee9e6b47afb596c
pages/print/printUNI.vue
@@ -1,146 +1,146 @@
<template>
   <view class="content">
      <view>
         <view class="bluetoothConnected">
            <view class="bluetoothList" v-for="(item,index) in GET_CONNECTBLEDATA" :key="index" @tap="confirm_bluetooth(item)">
               <view class="bluetoothList-name">名称:{{item.name}}</view>
               <view class="bluetoothList-mac">地址:{{item.mac}}</view>
            </view>
         </view>
         <button type="default" @click="search_bluetooth">搜索蓝牙</button>
         <button @click="senBleLabel">打印</button>
         <view class="bluetoothItem" v-if="GET_INFODATA">
            <view class="bluetoothList" v-for="(item,index) in GET_INFODATA" :key="index" @tap="confirm_bluetooth(item)">
               <view class="bluetoothList-name">名称:{{item.name}}</view>
               <view class="bluetoothList-mac">地址:{{item.mac}}</view>
            </view>
         </view>
      </view>
   </view>
</template>
<script>
   import printConnect from "@/common/print.js";  //引入打印机模板文件
   let _this = null;
   import {
      mapGetters,
      mapActions
   } from 'vuex';
   import {
      GET_INFODATA,
      GET_CONNECTBLEDATA
   } from "@/store/gettersType.js";
   import {
      SET_CONNECTBLEDATA
   } from '@/store/actionsType.js';
   // #ifdef APP-PLUS
   const HanyinPlugin = uni.requireNativePlugin('Hanyin-Plugin'); //汉印
   // #endif
   let print;
   export default {
      data() {
         return {
            bArray: [], //用于搜索蓝牙去重用的
            no_match_list: [], //没有配对的蓝牙列表
            match_list: "", //已连接蓝牙打印机
            val: "",
            dateTimer: "",
            valArr: [],
            print_data: '',
            mat: '',
            time: '',
            // 巴枪参数
            // broadcase_actions: "com.android.receive_scan_action",
            // broadcast_flag: "data"
         };
      },
      computed: {
         ...mapGetters([GET_INFODATA, GET_CONNECTBLEDATA])
      },
      onShow() {
         uni.hideLoading();
         //检查是否已连接蓝牙
         // this.$check_bluetooth_connect();
         console.log('onShow');
      },
      onHide() {
         console.log('onHide');
      },
      onUnload() {
         console.log('onUnload');
      },
      onLoad(options) {
         _this = this;
          this.$init_bluetooth();
          let that = this
          const eventChannel = this.getOpenerEventChannel();
          eventChannel.on('data1', function(data1) {
             that.mat = data1.data
            that.time = data1.time
            console.log(data1);
          })
      },
      methods: {
         ...mapActions([SET_CONNECTBLEDATA]),
         senBleLabel() {
            // console.log(this.$Mock.order_data);
            if(!print) return;
            console.log(this.mat);
            this.print_data =  this.$Mock.order_data
            this.print_data.MATNR = this.mat.matnr
            this.print_data.MAKTX = this.mat.maktx
            this.print_data.MODI_TIME = this.time
            print.startPrint(this.print_data);
         },
         // 连接打印机
         confirm_bluetooth(item) {
            let {
               name,
               mac
            } = item;
            //判断蓝牙是否打开
            this.$check_bluetooth_open().then(res => {
               console.log(res);
               //进行打印机连接
               if (res) {
                       print =new printConnect(item);  //打印机连接
               }
            })
         },
         //搜索没匹配的蓝牙设备
         search_bluetooth(address) {
            let _this = this;
            //检查蓝牙是否开启
            this.$check_bluetooth_open().then(ores => {
               if (ores) {
                  console.log(ores);
                  //搜索蓝牙
                  _this.$search_bluetooth().then(bres => {
                     console.log(bres);
                     if (bres.code) {
                        _this.$search_pipei().then(pres => {
                           console.log(pres);
                        })
                     }
                  })
               }
            })
         }
      }
   }
</script>
<style lang="scss">
   .bluetoothItem {
      width: 100%;
      height: 100%;
      .bluetoothList {
         display: flex;
         flex-direction: column;
         padding: 20rpx;
         border-bottom: 1rpx solid #BEBEBE;
         font-size: 18rpx;
      }
   }
</style>
<template>
   <view class="content">
      <view>
         <view class="bluetoothConnected">
            <view class="bluetoothList" v-for="(item,index) in GET_CONNECTBLEDATA" :key="index" @tap="confirm_bluetooth(item)">
               <view class="bluetoothList-name">名称:{{item.name}}</view>
               <view class="bluetoothList-mac">地址:{{item.mac}}</view>
            </view>
         </view>
         <button type="default" @click="search_bluetooth">搜索蓝牙</button>
         <button @click="senBleLabel">打印</button>
         <view class="bluetoothItem" v-if="GET_INFODATA">
            <view class="bluetoothList" v-for="(item,index) in GET_INFODATA" :key="index" @tap="confirm_bluetooth(item)">
               <view class="bluetoothList-name">名称:{{item.name}}</view>
               <view class="bluetoothList-mac">地址:{{item.mac}}</view>
            </view>
         </view>
      </view>
   </view>
</template>
<script>
   import printConnect from "@/common/print.js";  //引入打印机模板文件
   let _this = null;
   import {
      mapGetters,
      mapActions
   } from 'vuex';
   import {
      GET_INFODATA,
      GET_CONNECTBLEDATA
   } from "@/store/gettersType.js";
   import {
      SET_CONNECTBLEDATA
   } from '@/store/actionsType.js';
   // #ifdef APP-PLUS
   const HanyinPlugin = uni.requireNativePlugin('Hanyin-Plugin'); //汉印
   // #endif
   let print;
   export default {
      data() {
         return {
            bArray: [], //用于搜索蓝牙去重用的
            no_match_list: [], //没有配对的蓝牙列表
            match_list: "", //已连接蓝牙打印机
            val: "",
            dateTimer: "",
            valArr: [],
            print_data: '',
            mat: '',
            time: '',
            // 巴枪参数
            // broadcase_actions: "com.android.receive_scan_action",
            // broadcast_flag: "data"
         };
      },
      computed: {
         ...mapGetters([GET_INFODATA, GET_CONNECTBLEDATA])
      },
      onShow() {
         uni.hideLoading();
         //检查是否已连接蓝牙
         // this.$check_bluetooth_connect();
         console.log('onShow');
      },
      onHide() {
         console.log('onHide');
      },
      onUnload() {
         console.log('onUnload');
      },
      onLoad(options) {
         _this = this;
          this.$init_bluetooth();
          let that = this
          const eventChannel = this.getOpenerEventChannel();
          eventChannel.on('data1', function(data1) {
             that.mat = data1.data
            that.time = data1.time
            console.log(data1);
          })
      },
      methods: {
         ...mapActions([SET_CONNECTBLEDATA]),
         senBleLabel() {
            // console.log(this.$Mock.order_data);
            if(!print) return;
            console.log(this.mat);
            this.print_data =  this.$Mock.order_data
            this.print_data.MATNR = this.mat.matnr
            this.print_data.MAKTX = this.mat.maktx
            this.print_data.MODI_TIME = this.time
            print.startPrint(this.print_data);
         },
         // 连接打印机
         confirm_bluetooth(item) {
            let {
               name,
               mac
            } = item;
            //判断蓝牙是否打开
            this.$check_bluetooth_open().then(res => {
               console.log(res);
               //进行打印机连接
               if (res) {
                       print =new printConnect(item);  //打印机连接
               }
            })
         },
         //搜索没匹配的蓝牙设备
         search_bluetooth(address) {
            let _this = this;
            //检查蓝牙是否开启
            this.$check_bluetooth_open().then(ores => {
               if (ores) {
                  console.log(ores);
                  //搜索蓝牙
                  _this.$search_bluetooth().then(bres => {
                     console.log(bres);
                     if (bres.code) {
                        _this.$search_pipei().then(pres => {
                           console.log(pres);
                        })
                     }
                  })
               }
            })
         }
      }
   }
</script>
<style lang="scss">
   .bluetoothItem {
      width: 100%;
      height: 100%;
      .bluetoothList {
         display: flex;
         flex-direction: column;
         padding: 20rpx;
         border-bottom: 1rpx solid #BEBEBE;
         font-size: 18rpx;
      }
   }
</style>